提示是: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”
查了很多资料都没有解决,请高手解答问题出在哪?在线急等
另:麻烦版主把先前复杂的代码删了,保留这个

解决方案 »

  1.   

    da.Update(changedDs);=>da.Update(changedDs,"t_lot");
      

  2.   

    最好以dataset为对象操作,但这样我又不知道问题在哪
      

  3.   


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

  4.   

    初步原因已经找到,
    da.Update(changedDs);

    da.Fill(changedDs);
    参数数量和类型必须完全一致,否则vs会莫名其妙的在Dataset中给你添加一个看见或看不见的"Table"表
    至于为什么,还是没找到具体原因