Il problema è che stavo utilizzando un dataread diverso, o almeno credo![]()
Ho risolto creando una nuova conn essione al database, però adesos ho 2 connesisoni aperte al database, non è che mi piaccia molto....
Questo è il codice che sto utilizzando adesso...codice:oleCmd = new SqlCommand(query, conn); reader = oleCmd.ExecuteReader(); using (SqlConnection conn2 = new SqlConnection(MainForm.Database())) { conn2.Open(); while (reader.Read()) { if (System.Convert.ToInt32(reader[0]) > 0) { //Prendiamo la quantità venduta, per sottrarla a quella che abbiamo in magazzino string queryVendita = "SELECT sum(prodotti_venduti.quantita) AS venduti FROM prodotti_venduti WHERE codice = '" + reader[2].ToString() + "' AND prodotti_venduti.conta='1' GROUP BY prodotti_venduti.codice"; SqlCommand oleCmdQuant = new SqlCommand(queryVendita, conn2); long venduti = System.Convert.ToInt64(oleCmdQuant.ExecuteScalar()); DataRow dr = ds.Tables["Merce"].NewRow(); dr["Codice"] = reader["artCod"].ToString(); dr["BarCodice"] = reader["artBar"].ToString(); dr["Descrizione"] = reader["artDesc"].ToString(); dr["Quantita"] = (System.Convert.ToInt64(reader[0]) - venduti).ToString(); if ((System.Convert.ToInt64(reader[0]) - venduti) > 0) ds.Tables["Merce"].Rows.Add(dr); } } conn2.Close(); } conn.Close();

Rispondi quotando