public DataSet UpdateDs(string _strSql,DataSet changedDs, string tableName)
{
try
{
this.da = new SqlDataAdapter(_strSql, GetConn());
this.sqlCmdBuilder = new SqlCommandBuilder(da);
this.da.Update(changedDs, tableName);
changedDs.AcceptChanges();
return changedDs;//返回更新了的数据库表
}
catch (Exception ex)
{
throw new Exception(ex.Message);//, "数据库更新失败");
}
}
其中 _strSql = "select * from GDC_price_depot";
DataSet 我跟踪过了也没有错.里面有一行,状态是Modify.
da也正确.
在da.Update(changedDs, tableName)时报错.我调试过是da的UpdateCommand是Null,难道一定要为每个更新都写UpdateCommand吗?我见过更新统一调用Update(包括插入,更新,删除),参数都是用的一个select语句,怎么实现的?主键有设置.不知道问得是不是清楚.
{
try
{
this.da = new SqlDataAdapter(_strSql, GetConn());
this.sqlCmdBuilder = new SqlCommandBuilder(da);
this.da.Update(changedDs, tableName);
changedDs.AcceptChanges();
return changedDs;//返回更新了的数据库表
}
catch (Exception ex)
{
throw new Exception(ex.Message);//, "数据库更新失败");
}
}
其中 _strSql = "select * from GDC_price_depot";
DataSet 我跟踪过了也没有错.里面有一行,状态是Modify.
da也正确.
在da.Update(changedDs, tableName)时报错.我调试过是da的UpdateCommand是Null,难道一定要为每个更新都写UpdateCommand吗?我见过更新统一调用Update(包括插入,更新,删除),参数都是用的一个select语句,怎么实现的?主键有设置.不知道问得是不是清楚.
string queryString, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
//因此處創建了一個SqlCommandBuilder,所以會對adapter自動生成其他的Command.
SqlCommandBuilder builder = new SqlCommandBuilder(adapter); connection.Open(); DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName); //code to modify data in DataSet here //如果沒有SqlCommandBuilder,此行代碼將會異常
adapter.Update(dataSet, tableName); return dataSet;
}
}但要注意,衹有當對單表進行操作時,這種做法才有效。
去掉changedDs.AcceptChanges(); 试
adapter.Update(dataSet, tableName);
你的dataSet中的表根本没有变当然不会更新呀!!
不好意思,我的变量是有值的,表是有的,也不是这里的问题.前些天出差了...大家帮我来看看.
你还米新的DataSet呢就Upate了反正每次都重写sql了 干脆连UpdateCommand也每次重来便呗
http://www.dqhxz.com/
public DataSet UpdateDs(string _strSql, DataSet changedDs, string tableName)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(_strSql, GetConn());
SqlCommandBuilder sb = new SqlCommandBuilder(da);
da.Update(changedDs, tableName);
changedDs.AcceptChanges();
}
catch (Exception ex)
{
throw new Exception(ex.Message);//, "数据库更新失败");
} }