请问,ADO.NET中的行版本
http://msdn.microsoft.com/zh-cn/library/system.data.datarowversion(v=vs.100).aspx
链接中的MSDN有这么一句话:“在调用 DataRow 对象的 EndEdit 方法之后,Proposed 值变成 Current 值。”
看下面的代码:
DataTable datatable = new DataTable();
datatable.Columns.Add("姓名", typeof(string));
DataRow dr = datatable.NewRow();
dr["姓名"] = "汤姆";
datatable.Rows.Add(dr);
dr.BeginEdit(); //进入编辑模式
dr["姓名"] = "熊俊";
datatable.EndInit(); //终止编辑模式
Console.WriteLine(datatable.Rows[0]["姓名", DataRowVersion.Current]); //输出当前值为:汤姆
Console.WriteLine(datatable.Rows[0]["姓名", DataRowVersion.Proposed]); //输出建议值为:熊俊
我调用了EndInit方法,为什么输出的当前值和建议值不一样呢?
------解决方案--------------------
“在调用 DataRow 对象的 EndEdit 方法之后“
你用的是EndInit
------解决方案--------------------
因为你写错了
不是datatable.EndInit
是dr.endedit
------解决方案--------------------另外,调用了dr.endedit后datatable.Rows[0]["姓名", DataRowVersion.Proposed]也不存在了