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

Updating时DetailsView和SqlDataSource中相应字段值不一致的有关问题

2011-12-26 
Updating时DetailsView和SqlDataSource中相应字段值不一致的问题使用DetailsView+SqlDataSource显示、更改

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前.

热点排行