通过DataSet 更新数据库 报错

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:27:07
以下是我的方法

public DataSet UpdateByDataSet(DataSet ds, string strTblName)
{
SqlConnection conn = data_con.getcon();
SqlDataAdapter myAdapter;
string strSQL = "select * from "+ strTblName;
SqlCommand myCommand = new SqlCommand(strSQL, conn);
myAdapter.SelectCommand = myCommand;

SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
try
{
lock (this) //处理并发情况(分布式情况)
{
myAdapter.Update(ds.Tables[0]);
}
}

catch (Exception err)
{
conn.Close();
throw err;
}

myAdapter.Fill(ds);

return ds; //数据集的行状态在更新后会都变为: UnChange,在这次更新后客户端要用返回的ds<

你的表里这个字段存在否?
如果是主键你要更新的话你的参数strTblName必须有这个字段相应的值,否则无法安主键查找到相应的数据进行更新

既然是主键,那更新的时候必须得有这个参数,没有这个参数就无法给你找到相应数据

1. 要确保执行myAdapter.Update(ds.Tables[0])之前,由myAdapter填充ds;
2.检查所访问的数据表是否设置了主键;

你的表建的了主键没