2013-03-18 3 views
6

Dato un ADO.Net DataRow, come posso modificare il RowState della riga da Added a Modified o Deleted?Come posso modificare esplicitamente il RowState di un DataRow ADO.Net?

ho provato a fissare direttamente la struttura:

myDataSet.Tables[0].Rows[0].RowState = DataViewRowState.ModifiedOriginal; 

conseguente il seguente messaggio di errore del compilatore:

error CS0200: Property or indexer 'DataRow.RowState' cannot be assigned to -- it is read only 
+0

Perché ho downvoted questa domanda: http://meta.stackexchange.com/a/149138/133242 –

+0

Hai provato ** qualsiasi cosa **? Mostra prima i tuoi sforzi .. E per favore leggi [FAQ] e [chiedi] un paio di volte .. –

+0

@ SonerGönül sory non ho menzionato. Sì, ho provato un sacco uno di loro è menzionato in questione. – user1387147

risposta

15

Anche se ci sono metodi per impostare la proprietà RowState esplicitamente, come SetAdded, SetModified e Delete, penso che sia meglio capire cosa succede esattamente automaticamente.

Se è necessario impostare RowState invariato, chiamare AcceptChanges sulla riga e passare da lì. Se hai bisogno che sia in uno stato modificato, e non è al momento, ci sono buone probabilità che dovresti chiamare AcceptChanges su DataRow o DataTable da qualche altra parte nella logica - in questo modo quando apporti modifiche alla riga tramite codice come:

row["field"] = "New Value"; 

cambia il RowState-Modified ma ora ha anche una linea di base, lo stato Original fila, perché ci siete accettato le modifiche in precedenza.

Il mio punto qui è che, sì, è possibile impostare lo RowState in modo esplicito con alcuni di questi metodi, ma ho la sensazione che potresti dover semplicemente lavorare con l'interfaccia ADO.NET un po 'più come previsto.