使用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,则第一段代码打印出新值,第二段代码打印出旧值。有谁知道这是怎么回事吗?