ok graze mille risolto il tutto... ora ho un'altro problema.. ho 3 tabelle autori, editori e libri.. le prime due hanno ciascuna una relazione unoa molti verso la terza...
Vorrei stampare a video tramite una listbox per ogni autore, tutti i libri fatti e accanto a ciascun libro la relativa casa editrice.
ho quindi impostato il seguente codice
string sql_autori = "SELECT * FROM "+dbautore+""; //Ottengo tutti gli autori
cmd = new SqlCommand(sql_autori, conn);
SqlDataReader result1 = cmd.ExecuteReader();
while (result1.Read()) //Ciclo su tui gli elementi di result1 e per ciascuo estraggo l'id e il nome
{
autore = (int)result1["ID"];
nome_autore = (string)result1["nome"];
conn.Close();
conn.Open();
listBox2.Items.Insert(rows, nome_autore);
string libri = "SELECT titolo,id_casa FROM libro WHERE id_autore ='" + autore + "'"; //estraggo tuti i libri dell'autore trovato
cmd1 = new SqlCommand(libri, conn);
SqlDataReader result2 = cmd1.ExecuteReader();
while (result2.Read())
{
titolo = (string)result2["titolo"]; //salvo titolo e id delal casa editrice d ciascun libro
casa = (int)result2["id_casa"];
conn.Close();
conn.Open();
string sql_casa = "SELECT nome FROM casaproduttrice WHERE id ='" + casa + "'"; //cerco il nome della casa editrice
cmd2 = new SqlCommand(sql_casa, conn);
SqlDataReader result3 = cmd2.ExecuteReader();
while (result3.Read())
{
nome_casa = (string)result3["nome"];
}
}
Il codice non sembra soffrre di gravi problemi se on fosse che mi visualizza solamente il primo autore con il suo primo libro e la casa editrice a fianco...ho trascrito le stesse query e passate a mssql ritornano un insieme di record dal db...
Il mio dubbio è a questo punto sul funzionamento degli elementi SqlDataReader ...
while (result3.Read())
{
nome_casa = (string)result3["nome"];
}
qeusto ciclo non dovrebbe ciclare su tutt gli elementi tonati dalla query in result3?
altra domanda.... è necesssario ogni nuova query da eseguire interrompere la connessione con conn.stop() o no?
gli sqlCommand cmd, cmd1 e cmd2 snon dichiarati all'inizio a null
grazie
Simone