写了一个简单的DataSet更新数据库的小程序,在DataAdapter.Update(DataSet)的时候总是显示update的时候找不到需要update的table。错误信息如下:
“Update unable to find TableMapping['Table'] or DataTable 'Table'.”还请各位指点下,小弟刚学这块,解决问题能力不够啊,
谢谢了!

解决方案 »

  1.   

    没有写错啊,我调试到update那一句前dataset中的内容已经被填充了啊,并且dataset中也存在这个表,可就总是报错。。
      

  2.   

    请给出完整代码,尤其是SqlCommand对象的创建代码。
    需新增,必须创建SqlCommand赋值给DataAdapter.InsertCommand属性;
    需修改,必须创建SqlCommand赋值给DataAdapter.UpdateCommand属性;
    需删除,必须创建SqlCommand赋值给DataAdapter.DeleteCommand属性。
      

  3.   

    SqlConnection conn = new SqlConnection();
                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。道理说不应该啊。
                
      

  4.   

    DataSet dt=new DataSet();
    DataAdapter da=new DataAdapter();
    //是否将dt填充到适配器里面了。不然找不到需要update的table
    da.Fill(dt);
      

  5.   

    adapter.Fill(set, "kecheng");
    这句已经填充进去了啊。dataset中的数据都正确啊,修改的数据也都在dataset中做了改动,就是最后update的时候说是找不着那个table。  实在是不理解怎么回事啊。。
      

  6.   

    好像順序不對唷。  SqlDataAdapter adapter = new SqlDataAdapter("use [DBTest] select * from kecheng", conn);  DataSet set = new DataSet();
      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);
    試試看~
      

  7.   

    update 表名 set 字段=值 
      

  8.   

    SQL语句在SQL server上是能够执行的   现在突然就行了还是这段代码没变 可是后来的
    row["课程名称"] ="adada";
    这个操作在真实数据库里并没有变化