Problemi SqlDataAdapter

lunedì 27 febbraio 2012 - 16.44

ReRosso Profilo | Junior Member

Ciao ragazzi,

Sto studianto i DataAdapter...(con non molto successo!!!!), valutando la caratteristica di aggiornare più record al termine delle operazioni eseguite su un datatable.
Questo è il codice incriminato:

--------------------
//aggiornamento di tutte le righe del datatable con nuovi valori
foreach (DataGridViewRow dr in dgv.Rows)
{
int drow = dr.Index;
dt.Rows[drow][1] = t1.Text.ToUpper();
dt.Rows[drow][2] = t2.Text.ToUpper();
dt.Rows[drow][3] = t3.Text.ToUpper();
}

//definizione del DataAdapter
SqlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
cn.ConnectionString = "Data Source=vs2010\\SQL2008;Initial Catalog=ado_net;Persist Security Info=True;User ID=ado;Password=ado";
cmd.Connection = cn;
cmd.CommandText = "modifica";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", (int)dgv.Rows[dgv.CurrentRow.Index].Cells["id"].Value);
cmd.Parameters.AddWithValue("@item1", t1.Text.ToUpper());
cmd.Parameters.AddWithValue("@item2", t2.Text.ToUpper());
cmd.Parameters.AddWithValue("@item3", t3.Text.ToUpper());
ad.UpdateCommand = cmd;

//invio delle modifiche al DB (viene aggiornato soltanto il primo record!!!!)
ad.Update(dt);
-----------------------

IL RISULTATO DI QUESTO CODICE E' CHE L'AGGIORNAMENTO DEL DATATABLE AVVIENE PERFETTAMENTE, MA NEL DB VIENE REGISTRATA SOLO LA MODIFICA SUL PRIMO RECORD!!!!

GRAZIE IN ANTICIPO

TOPOAMORE Profilo | Expert

Ciao,

sono 3 righe diverse con diversi ID

Il che significa che devi sparare 3 volte la stored con i diversi parametri.

Nel tuo caso la variabile drow viene ciclata tre volte portatndo al suo interno solo il valore della terza riga e dopo di che passi la stored aggiornando solo quella

facci sapere

ciaooo
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

ReRosso Profilo | Junior Member

Grazie mille....risolto!!!

Volevo precisare a memoria futura che oltre all'errore logico del triplo aggiornamento, esisteva anche un problema legato ai mapping dei parametri, è infatti necessario nella dichiarazione di questi specificare oltre al nome e tipo anche lunghezza e colonna associata.

Saluti

TOPOAMORE Profilo | Expert

Questo neanche l'ho visto....

Avvistato il primo errore mi sono fermato li :D

Ciaoooo
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5