2013-03-18 9 views
6

Biorąc pod uwagę ADO.Net DataRow, w jaki sposób mogę zmienić wiersz RowState z Added na Modified lub Deleted?Jak mogę jawnie zmienić parametr RowState w ADO.Net DataRow?

Próbowałem ustawiać właściwość bezpośrednio:

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

powstałego w następującym komunikatem o błędzie z kompilatora:

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

Dlaczego odrzucam to pytanie: http://meta.stackexchange.com/a/149138/133242 –

+0

Czy próbowałeś ** czegokolwiek **? Pokaż swój wysiłek pierwszy .. I przeczytaj [FAQ] i [zapytaj] kilka razy .. –

+0

@ SonerGönül sory i nie wspomniałem. Tak, próbowałem dużo, jeden z nich jest wymieniony w pytaniu. – user1387147

Odpowiedz

15

Chociaż istnieją sposoby ustawiania właściwości RowState wyraźnie, jak SetAdded, SetModified i Delete, myślę, że lepiej jest zrozumieć, co dokładnie dzieje się automatycznie.

Jeśli musisz ustawić RowState na niezmieniony, a następnie zadzwoń AcceptChanges w wierszu i stamtąd. Jeśli potrzebujesz, aby był w stanie zmodyfikowanym, a obecnie nie istnieje, istnieje duża szansa, że ​​powinieneś był zadzwonić pod numer AcceptChanges na inny numer w logice - w ten sposób, gdy wprowadzisz zmiany w wierszu za pomocą kodu:

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

zmienia RowState do Modified ale teraz ma też bazowym określić stan Original wiersza, bo przyjął zmiany wcześniej.

Chodzi mi o to, że tak, można ustawić RowState jawnie za pomocą kilku z tych metod, ale wydaje mi się, że może trzeba po prostu pracować z interfejsem ADO.NET trochę bardziej, jakby był przeznaczony.

Powiązane problemy