Updating时DetailsView和SqlDataSource中相应字段值不一致的问题
使用DetailsView+SqlDataSource显示、更改数据,显示没问题,但更改老改不了。后来发现:
在DetailsView的Updating事件中添加以下代码:
for (int i = 0; i < e.NewValues.Count; i++)
if (e.NewValues[i] != null)
Response.Write(e.NewValues[i].ToString());
在相应的SqlDataSource的Updating事件中添加以下代码:
foreach (System.Data.Common.DbParameter param in e.Command.Parameters)
if (param.Value != null)
Response.Write(param.Value.ToString() + "\r\n ");
运行结果:
1. 如果字段值原先为null,现在设置了值,则两段代码打印出来的值一致,都是新的值。
2. 如果字段值原先不为null,则第一段代码打印出新值,第二段代码打印出旧值。
有谁知道这是怎么回事吗?
------解决方案--------------------第一段代码打印出新值,第二段代码打印出旧值, 因为第2段代码是在更新前执行的.
至於你说的如果字段值原先为null,现在设置了值,则两段代码打印出来的值一致. 这个我觉得奇怪,应该是第2段不打印出null字段内容才合理~~~~~
------解决方案--------------------我说的 "第2段代码是在更新前执行的 "是说在更新DbParameter前.