日期:2014-05-17  浏览次数:20914 次

Access无法使用Update方法,在线急等
提示是:Update 无法找到 TableMapping['table'] 或 DataTable“table”
我检查了一下dataset,也就是changedDs,表名都与数据库一致,数据都正确更新了,但update就报错

简化后代码如下:

DataSet changedDs = new DataSet();
string sql1 = "select * from t_lot order by qishuTotal DESC";
OleDbDataAdapter da = new OleDbDataAdapter(sql1, dbconn);
da.Fill(changedDs, "t_lot");
DataTable dt1 = changedDs.Tables["t_lot"];  
dt1.PrimaryKey = new DataColumn[] { dt1.Columns["ID"] };
Datarow row = dt1.NewRow();
for (int i = 0 ; i <= dt1.Columns.Count - 1 ; i++ )
{
  row[i] = arr[i];
}
dt1.Rows.Add(row);
OleDbCommandBuilder oleCB = new OleDbCommandBuilder(da);
da.Update(changedDs); //这里报错:Update 无法找到 TableMapping['table'] 或 DataTable“table”


查了很多资料都没有解决,请高手解答问题出在哪?在线急等
另:麻烦版主把先前复杂的代码删了,保留这个

------解决方案--------------------
C# code

DataTable dt1 = changedDs.Tables["t_lot"];   
dt1.PrimaryKey = new DataColumn[] { dt1.Columns["ID"] };
你把这两句合成一句试试 也就是说不需要重新定义个datatable
而改为直接dataset.table[""]之类的 这里乱写的 思路就是这个 你试试。