如果是两个表连接生成的 datatable ,就无法更新吗?(对于多个基表不支持动态SQL生成)

xuexi_net1 2010-09-26 08:29:16
如果是两个表连接生成的 datatable ,就无法更新吗?(对于多个基表不支持动态SQL生成)

我的sql语句如下:

public int GetGjjRecord(string yf, string bm, out DataTable datatable1,out SqlDataAdapter da)
{
string strsql = "select a.autoid,a.月份,b.部门,a.公积金编号,a.编号,a.姓名,a.序号,a.存取方式编码,a.存取方式名称,a.存入,a.支取,a.公积金,a.备注,a.制单人,a.制单人姓名,a.审核人,a.审核人姓名,a.制单时间,a.审核时间 ";
strsql += "from 公积金明细 a left join gzda b on (a.编号=b.编号) where a.记录标志 <> 0 and a.月份='"+yf +"' ";

if (bm=="**")
{
strsql+=" order by b.部门,a.编号";
}
else if (bm == "##")
{
strsql += "and isnull(b.部门,'')='' order by b.部门,a.编号";
}
else
{
strsql += "and b.部门='" + bm + "' order by b.部门,a.编号";
}

dt = new DataTable();
da = new SqlDataAdapter(strsql, mydb.conn);
scb = new SqlCommandBuilder(da);
da.Fill(dt);
datatable1 = dt;

return 0;
}

我执行更新时, da.update(datatable表名)
提示:对于多个基表不支持动态SQL生成

我不知如何办了,这个表确实是由两个表 join 合成的,但是我只想更新期中一个表的内容,另一个表只要取字段(比如这个例子中,我是想从另一个表取部门,并不更新另一个表中的信息,我的目的是只更新a表)

难道这种情况就无法使用 datatable 的更新功能吗

...全文
480 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangdiping 2011-07-16
  • 打赏
  • 举报
回复
楼主,问题解决了没有,我也想要答案!
gjw_8888 2010-09-27
  • 打赏
  • 举报
回复
自動產生單一資料表命令,是不是可以理解为select的字段都是一个表的?
你这种情况自己写insertcommand,updatecommand,deletecommand命令吧
xuexi_net1 2010-09-26
  • 打赏
  • 举报
回复
这个问题无人可解吗?
难道我的思路有问题,这种情况,平时没有人遇到过。

一般很少遇到更新与查询在逻辑上是分开的,多数都是基于多表查询结果,然后在查询结果的表格中更新呀,
这是很正常的逻辑呀!!!
xuexi_net1 2010-09-26
  • 打赏
  • 举报
回复
scb = new SqlCommandBuilder(da);
---------------------------------
刚上网查了下,好象这样自动生成语句不行,我要自已生成,
可以代码如何写呢
kiss0622 2010-09-26
  • 打赏
  • 举报
回复
帮DING~~~!!
苍穹无痕 2010-09-26
  • 打赏
  • 举报
回复
可以用触发器,至于触发器怎么写,你google下吧
chazikai24 2010-09-26
  • 打赏
  • 举报
回复
老老实实的循环比较,如果是A表字段则更新,B表字段不更新
xuexi_net1 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 i520wuchan 的回复:]

这种多表同时操作的情况,可以用事务来处理。
[/Quote]

再说一遍,不是更新多表,是只更新一个表,另一个表只取字段供查询用。
I520WUCHAN 2010-09-26
  • 打赏
  • 举报
回复
这种多表同时操作的情况,可以用事务来处理。
xuexi_net1 2010-09-26
  • 打赏
  • 举报
回复
也就是说,我只想更新a表中的部分字段,b表中的字段,我根本不需要更新,但是需要显示出来,
如何实现只更新 a 表的部分字段呢?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧