首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教,ADO.NET中的行版本

2012-09-22 
请问,ADO.NET中的行版本http://msdn.microsoft.com/zh-cn/library/system.data.datarowversion(vvs.100).

请问,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]也不存在了

热点排行