剛開始用.NET,望高手指點。
有一DataGridView的資料來源於Join數個資料表(連接商品,幣種等基本資料),現用
SqlCommandBuilder cmdBuld = new SqlCommandBuilder(AdaD);      
cmdBul.GetUpdateCommand();
AdaD.Update(DataSet, "Tb1");
更新資料源,系統提示"多個基底資料表不支持動態SQL產生",估計錯誤原因是AdaD中商品名稱,幣別名稱等來源於不同資料表,所以不能執行,該怎麼辦呢?最後35分了,Tks

解决方案 »

  1.   

    1.确定表有主键
    2.不要cmdBul.GetUpdateCommand();这句试试
      

  2.   

    SqlCommandBuilder只适合一个表更新的情况.所以你这里多个表不适合用。
    需要自己写updatecommand,deletecommand,insertcommand
      

  3.   

    主鍵設置了。
    michael_zy(枫林)說的沒錯,查了一下SqlCommandBuild的MSDN。
    如何設置updatecommand呢?下述指令標准,正確麼?
    updatecommand.CommandText="UPDATE TB SET VALUE=@VALUE WHERE PR=@PR"
    updatecommand.Parameters.Add("@PR",INT)
    updatecommand.Parameters.Add("@VALUE",INT)
    updatecommand.Parameters["@PR"]=ds.Tables["TB"].ROWS[DBGridView.Rows.Currentrow.Index].["Pr_Key"]
    updatecommand.Parameters["@VALUE"]=ds.Tables["TB"].ROWS[DBGridView.Rows.Currentrow.Index].["VALUE"]
      

  4.   

    要有主键
    cmdBul.GetUpdateCommand();可以不要
    AdaD要指定select语句,不能是多表查询,如果tb1的字段DataSet里都有就可以是select * from tb1,这个是给cmdBul获取表结构自动创建更新语句用的,如果tb1的字段DataSet里不是全有,就要把有的一个个写上来了