| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2872 人关注过本帖
标题:能不能用视图更新到原数据表
只看楼主 加入收藏
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
 问题点数:0 回复次数:6 
能不能用视图更新到原数据表
例如,我有一个视图如下:

CREATE VIEW dbo.ViewBom
AS
SELECT         dbo.Bom.SampleID, dbo.Bom.PartID, dbo.ViewPart.PartName,
                          dbo.ViewPart.PartSpec, dbo.ViewPart.ColorName, dbo.ViewPart.UnitName,
                          dbo.Bom.Dosage,dbo.Bom.Dosage
FROM             dbo.Bom LEFT OUTER JOIN
                          dbo.ViewPart ON
                          dbo.dbo.Bom.PartID = dbo.ViewPart.PartID

我现在将其数据绑定到DataGridView中,代码如下:
SqlConnection conn = new SqlConnection(strConnectionString);
string StrSql = "SELECT *  FROM  ViewBom ORDER BY PartID";
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(strSql, conn);
sda.Fill(dataSet, "ViewBom");
BindingSource bs = new BindingSource();
bs.DataSource = dataSet.Table["ViewBom"];
dgv.DataSource = bs;


(注:Bom和ViewPart是两个SQL源表,而ViewBom则是由Bom和ViewPart得到的一个视图)
我现在的问题是:
有没有办法使其在对dgv进年编辑后,直接调用sda.Update()来更新Bom表中的数据?
搜索更多相关主题的帖子: dbo 视图 Bom ViewPart 数据 
2007-12-08 16:16
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 
如果视图来源是一个表那就可以

愛生活 && 愛編程
2007-12-08 17:35
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
基本不可能~视图只供SELECT

有实力才会有魅力 实力来自坚持不懈的努力
2007-12-08 18:04
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 
那么平时大家是怎么解决这个问题的,
如我上面的问题,是一个产品的料件清单,
如果是新增的话,会同时新增几十笔的记录.
如果是编辑,也会这一份BOM表中的几十笔数据分别执行插入,删除,修改等操作.
....

帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-12-08 22:29
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 
看你的样子好象这视图是分别从两张表填充的
在oracle中可以做一个INSTEAD OF触发器 就可以解决问题
但没在sql server中用过 楼主自己试试

愛生活 && 愛編程
2007-12-09 02:02
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 
原帖由 [bold][underline]guoxhvip[/underline][/bold] 于 2007-12-9 02:02 发表 [url=http://bbs.][/url]
看你的样子好象这视图是分别从两张表填充的
在oracle中可以做一个INSTEAD OF触发器 就可以解决问题
但没在sql server中用过 楼主自己试试

用触发器?? 很不错的想法,得试试看。。

帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-12-09 21:30
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 
触发器应也不生吧, SqlDataAdapter好像也没法产生INSERT和UPDATE语句呀,没办法将数据更新到视图中.

我目前使有的方法是:先用DELETE 语句删除数据表中的所有相关数据,然后用foreach遍历DGV,重新生成INSERT语句将其添另到数据表中

帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-12-13 00:27
快速回复:能不能用视图更新到原数据表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014672 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved