剛開始用.NET,望高手指點。
有一DataGridView的資料來源於Join數個資料表(連接商品,幣種等基本資料),現用
SqlCommandBuilder cmdBuld = new SqlCommandBuilder(AdaD);
cmdBul.GetUpdateCommand();
AdaD.Update(DataSet, "Tb1");
更新資料源,系統提示"多個基底資料表不支持動態SQL產生",估計錯誤原因是AdaD中商品名稱,幣別名稱等來源於不同資料表,所以不能執行,該怎麼辦呢?最後35分了,Tks
有一DataGridView的資料來源於Join數個資料表(連接商品,幣種等基本資料),現用
SqlCommandBuilder cmdBuld = new SqlCommandBuilder(AdaD);
cmdBul.GetUpdateCommand();
AdaD.Update(DataSet, "Tb1");
更新資料源,系統提示"多個基底資料表不支持動態SQL產生",估計錯誤原因是AdaD中商品名稱,幣別名稱等來源於不同資料表,所以不能執行,該怎麼辦呢?最後35分了,Tks
2.不要cmdBul.GetUpdateCommand();这句试试
需要自己写updatecommand,deletecommand,insertcommand
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"]
cmdBul.GetUpdateCommand();可以不要
AdaD要指定select语句,不能是多表查询,如果tb1的字段DataSet里都有就可以是select * from tb1,这个是给cmdBul获取表结构自动创建更新语句用的,如果tb1的字段DataSet里不是全有,就要把有的一个个写上来了