写了一个简单的DataSet更新数据库的小程序,在DataAdapter.Update(DataSet)的时候总是显示update的时候找不到需要update的table。错误信息如下:
“Update unable to find TableMapping['Table'] or DataTable 'Table'.”还请各位指点下,小弟刚学这块,解决问题能力不够啊,
谢谢了!
“Update unable to find TableMapping['Table'] or DataTable 'Table'.”还请各位指点下,小弟刚学这块,解决问题能力不够啊,
谢谢了!
需新增,必须创建SqlCommand赋值给DataAdapter.InsertCommand属性;
需修改,必须创建SqlCommand赋值给DataAdapter.UpdateCommand属性;
需删除,必须创建SqlCommand赋值给DataAdapter.DeleteCommand属性。
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
sb.InitialCatalog = "DBTest";
sb.IntegratedSecurity = true;
sb.DataSource = "BEN1989";
conn.ConnectionString = sb.ConnectionString;
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter("use [DBTest] select * from kecheng", conn);
adapter.UpdateCommand = new SqlCommand("use DBTest update kecheng set 课程名称='qeqe' where 课程编号='1101'", conn);
DataSet set = new DataSet();
adapter.Fill(set, "kecheng");
DataRow row = set.Tables[0].Rows[1];
row["课程名称"] ="adada";
set.AcceptChanges();
adapter.Update(set);
DataSet中的东西都已经被修改过了,只是在update的时候找不到相应的table。道理说不应该啊。
DataAdapter da=new DataAdapter();
//是否将dt填充到适配器里面了。不然找不到需要update的table
da.Fill(dt);
这句已经填充进去了啊。dataset中的数据都正确啊,修改的数据也都在dataset中做了改动,就是最后update的时候说是找不着那个table。 实在是不理解怎么回事啊。。
adapter.Fill(set, "kecheng");
DataRow row = set.Tables[0].Rows[1];
row["课程名称"] ="adada";
adapter.UpdateCommand = new SqlCommand("use DBTest update kecheng set 课程名称='qeqe' where 课程编号='1101'", conn);
試試看~
row["课程名称"] ="adada";
这个操作在真实数据库里并没有变化