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

~SqlCommandBuilder更新视图(Not DataView But SQL SERVER)所遇到的有关问题!UP有分

2011-12-22 
~~~SqlCommandBuilder更新视图(Not DataView But SQL SERVER)所遇到的问题!UP有分!在我的程序(WINFORM)中,

~~~SqlCommandBuilder更新视图(Not DataView But SQL SERVER)所遇到的问题!UP有分!
在我的程序(WINFORM)中,我的显示层有一个dataGrid,他的数据源来自我通过SqlDataAdapter的Fill,sql语句是查询一个视图,select   *   from   View_Myself,对应于这个视图我建立了他的instead   of   update   触发器,并且直接在查询分析器里执行对视图的更新能够触发对基表的更新,然后我在显示层修改数据,逻辑层通过SqlCommandBuilder.Update(dt)来更新,这里的dt也就是前面通过查询视图所封装的结果集.却不能做到真正更新数据库的数据.

1.我想问的是,在很多帖子上看到这么一个错误:对视图或函数   '%'的更新或插入失败,因其包含有派生域或常量域.而我却能够通过查询分析器执行?
2.通过我自己的程序来更新,也就是在前台修改dataGrid里的数据,为什么不能真正修改到数据库的数据?

在线等~~!

[解决办法]
帮你顶
[解决办法]
U..U..UP
[解决办法]
视图中派生的列是不可能被更新的

比如表订单,有字段 编号,数量,单价 我可以根据 数量*单价 得到一个派生列 总价

也就是视图可以是 编号,数量,单价,总价

那么,你对视图中总价(这个就是派生列)的字段就算进行的更改,数据库的表里没有这个字段,是不可能发生什么改变的
[解决办法]
up up 抬个头……
[解决办法]
可以通过查询分析器执行成功,那么说明你的变量传递过程当中有问题,或是你的SqlCommandBuilder的参数设定有问题
另外你试着在你SqlCommandBuilder.Update(dt)这句设一个断点,检查一下dt这时的数据是否是你更改后的数据,与原始数据是否一致,dt的RowState是否是更新状态,不要告诉我你不会断点调试

[解决办法]
不懂,学习,帮顶,蹭点分。

热点排行