如果是两个表连接生成的 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 的更新功能吗
{
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 的更新功能吗
如何实现只更新 a 表的部分字段呢?
---------------------------------
刚上网查了下,好象这样自动生成语句不行,我要自已生成,
可以代码如何写呢
你这种情况自己写insertcommand,updatecommand,deletecommand命令吧