Salve ragazzi ho avuto un altro problema ma questo è veramente serio....
Sintatticamente non c'è errore ma la mia applicazione non gira come dovrebbe....
Mi succede che se aggiorno/Update il database va tutto bene....
Se vado ad eliminare qualunque cosa mi da qusto errore: "Violazione di concorrenza: DeleteCommand ha modificato 0 dei 1 record previsti"
Cosa significa? Codice:
//Comando per aggiornare i record................
adapter.UpdateCommand = new SqlCommand("update Fumetti" +
"set nomeFumetto = @nomeFumetto_new, costoFumetto = @costoFumetto_new," +
"KsGenere = @KsGenere_new, AnnoPubblicazione = @AnnoPubblicazione_new " +
"where idFumetti = @idFumetti_old and nomeFumetto = @nomeFumetto_old and " +
"costoFumetto = @costoFumetto_old and KsGenere = @KsGenere_old and " +
"AnnoPubblicazione = @AnnoPubblicazione_old", connessione);
//Collegamento tra nuove e vecchie colonne
adapter.UpdateCommand.Parameters.Add("@nomeFumetto _new", SqlDbType.VarChar, 50,"nomeFumetto");
adapter.UpdateCommand.Parameters.Add("@costoFumett o_new", SqlDbType.Float, 8, "costoFumetto");
adapter.UpdateCommand.Parameters.Add("@KsGenere_ne w", SqlDbType.Int, 4, "KsGenere");
adapter.UpdateCommand.Parameters.Add("@AnnoPubblic azione_new", SqlDbType.Int, 4, "AnnoPubblicazione");
//Il parametro che corrisponde ai dati originali deve essere appunto collegato alla riga originale
//prima delle modifiche, mantenuta dal dataset nell'OriginalSource
SqlParameter p = adapter.UpdateCommand.Parameters.Add("@idFumetti_o ld", SqlDbType.Int, 4, "idFumetti");
p.SourceVersion = DataRowVersion.Original;
p = adapter.UpdateCommand.Parameters.Add("@nomeFumetto _old", SqlDbType.VarChar, 50, "nomeFumetto");
p.SourceVersion = DataRowVersion.Original;
p = adapter.UpdateCommand.Parameters.Add("@costoFumett o_old", SqlDbType.Float, 8, "costoFumetto");
p.SourceVersion = DataRowVersion.Original;
p = adapter.UpdateCommand.Parameters.Add("@KsGenere_ol d", SqlDbType.Int, 4, "KsGenere");
p.SourceVersion = DataRowVersion.Original;
p = adapter.UpdateCommand.Parameters.Add("@AnnoPubblic azione_old", SqlDbType.Int, 4, "AnnoPubblicazione");
p.SourceVersion = DataRowVersion.Original;
//Comando per eliminare i record
adapter.DeleteCommand = new SqlCommand("delete from Fumetti " +
"where idFumetti = @idFumetti_old and nomeFumetto = @nomeFumetto_old and " +
"costoFumetto = @costoFumetto_old and KsGenere = @KsGenere_old and " +
"AnnoPubblicazione = @AnnoPubblicazione_old", connessione);
p = adapter.DeleteCommand.Parameters.Add("@idFumetti_o ld", SqlDbType.Int, 4, "idFumetti");
p.SourceVersion = DataRowVersion.Original;
p = adapter.DeleteCommand.Parameters.Add("@nomeFumetto _old", SqlDbType.VarChar, 50, "nomeFumetto");
p.SourceVersion = DataRowVersion.Original;
p = adapter.DeleteCommand.Parameters.Add("@costoFumett o_old", SqlDbType.Float, 8, "costoFumetto");
p.SourceVersion = DataRowVersion.Original;
p = adapter.DeleteCommand.Parameters.Add("@KsGenere_ol d", SqlDbType.Int, 4, "KsGenere");
p.SourceVersion = DataRowVersion.Original;
p = adapter.DeleteCommand.Parameters.Add("@AnnoPubblic azione_old", SqlDbType.Int, 4, "AnnoPubblicazione");
p.SourceVersion = DataRowVersion.Original;
Questo il bottone che mi sono creato per salvare il tutto:
BindingNavigator bn = new BindingNavigator(true);
ToolStripButton SaveBtn = new ToolStripButton(new Bitmap("pro.gif"));
SaveBtn.Click += new EventHandler(SaveBtn_Click);
bn.Items.Add(SaveBtn);
this.Controls.Add(bn);
bn.BindingSource = bs;
void SaveBtn_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
this.adapter.Update(ds.Tables ["Fumetti"]);
Cosa può essere?Mi potete aiutare?
Vi ringrazio in anticipo

Rispondi quotando