2013-03-18 23 views
6

Cho một ADO.Net DataRow, làm thế nào tôi có thể thay đổi RowState của hàng từ Added thành Modified hoặc Deleted?Làm thế nào tôi có thể thay đổi một cách rõ ràng RowState của một DataRow ADO.Net?

tôi đã cố gắng thiết lập thuộc tính trực tiếp:

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

dẫn đến thông báo lỗi sau từ trình biên dịch:

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

Tại sao tôi đã bỏ qua câu hỏi này: http://meta.stackexchange.com/a/149138/133242 –

+0

Bạn đã thử ** mọi thứ ** chưa? Hiển thị nỗ lực của bạn đầu tiên .. Và xin vui lòng đọc [FAQ] và [yêu cầu] một vài lần .. –

+0

@ SonerGönül sory tôi đã không đề cập đến. Có, tôi đã cố gắng rất nhiều trong số họ được đề cập trong câu hỏi. – user1387147

Trả lời

15

Mặc dù có phương pháp để thiết lập các RowState sở hữu một cách rõ ràng, giống như SetAdded, SetModifiedDelete, tôi nghĩ tốt hơn là nên hiểu chính xác những gì diễn ra tự động.

Nếu bạn cần đặt RowState thành không đổi, sau đó gọi AcceptChanges trên hàng và đi từ đó. Nếu bạn cần nó ở trạng thái được sửa đổi và hiện tại, không có cơ hội tốt bạn nên gọi là AcceptChanges trên DataRow hoặc DataTable ở một nơi khác trong logic - theo cách này khi bạn thực hiện sửa đổi hàng qua mã như:

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

nó thay đổi RowState-Modified nhưng bây giờ nó cũng có một cơ sở, tình trạng Original hàng, bởi vì bạn đã chấp nhận những thay đổi trước đó.

Điểm của tôi ở đây là, có, bạn có thể đặt RowState một cách rõ ràng với một vài phương pháp đó, nhưng tôi cảm thấy bạn chỉ cần làm việc với giao diện ADO.NET giống như dự định.

Các vấn đề liên quan