如果是两个表连接生成的 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 的更新功能吗

解决方案 »

  1.   

    也就是说,我只想更新a表中的部分字段,b表中的字段,我根本不需要更新,但是需要显示出来,
    如何实现只更新 a 表的部分字段呢?
      

  2.   

    可以用触发器,至于触发器怎么写,你google下吧
      

  3.   

    scb = new SqlCommandBuilder(da);
    ---------------------------------
    刚上网查了下,好象这样自动生成语句不行,我要自已生成,
    可以代码如何写呢
      

  4.   

    自動產生單一資料表命令,是不是可以理解为select的字段都是一个表的?
    你这种情况自己写insertcommand,updatecommand,deletecommand命令吧