Modificare la where in GetUpdateCommand

giovedì 16 aprile 2009 - 16.35

dipy Profilo | Junior Member

Salve a tutti.
Spero sia la sezione giusta per questo genere di problema.
Sto utilizzando un commandbuilder creare un UpdateCommand da utilizzare poi per mezzo di un SqlDataAdapter su una datatable.
Purtroppo il CommandBuilder mi crea il commandText con la clausola di where su tutti i campi:

es. update tablename set f1 = @f1,f2 = @f2 where f1 = @Original_f1 and f2 = @Original_f2

In questo modo non mi modifica mai nulla perchè chiaramente avendo io modificato i valori non trova mai una corrispondenza.
Premetto che le DataRow sono state tutte settate come Modified

Avrei dunque bisogno che la where includesse solo la mia primarykey e non tutti i campi della tabella.
HO provato a crearmi il commandtext a mano e ad assegnarlo al DataAdapter ma purtroppo continua a non trovare corrispondenze da aggiornare:


da.UpdateCommand = cmb.GetUpdateCommand(true);
// reimposto il commandText con quello generato a mano ( ... where pk = @pk)
da.UpdateCommand.CommandText = GetUpdateCommandText(ds.Tables[tabella], keyname);
da.Update(ds.Tables[tabella]);

Qualcuno sa dirmi se sto sbagliando io qualcosa o se esiste un modo per aggirare il problema?
Grazie a tutti
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5