Salve, io ho la necessità di mettere i risultati di una query select in un array. Siccome all'array devo assegnare una dimensione, inizialmente nn lo posso fare perchè non conosco quanti sono i record che mi estrare la select. Allora io mi conto il numero di record estratti e do quel numero come dimensione del mio array. Faccio così:

string SQL = "select COUNT(*) from commessa where settore=?; select * from commessa where settore=?";
//Response.Write(SQL);


MySqlCommand cmd = new MySqlCommand(SQL, connection);
cmd.Parameters.Add("?",id_settore);
int records = (int)cmd.ExecuteScalar();
string[] denominazione = new string[records];
string[] descrizione = new string[records];
MySqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows)
{
int m = -1;
while (dr.Read())
{
denominazione[++m] = dr["denominazione"].ToString();
descrizione[m] = dr["descrizione"].ToString();

}

Quando lo avvio mi da la seguente eccezione:

Cast specificato non valido

sulla riga:

int records = (int)cmd.ExecuteScalar();

Come posso risolvere?