dataset的数据进行了修改,在更新回数据库时,被报错,提示:
“当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。”[值班]这个表里有主键,是ID。请高手指点一下,错在哪里了呢?            //先读取MDB数据库里的数据出来
            string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source='" + MDBPath + "'";
            OleDbConnection oleCon = new OleDbConnection(ConStr);//创建数据库连接对象
            OleDbDataAdapter oleDap = new OleDbDataAdapter(//创建数据适配器对象
                "select top 7 * from [值班] order by id desc", oleCon);
            DataSet ds = new DataSet();//创建数据集
            oleDap.Fill(ds, "工作数据");//填充数据集                    if (ds.HasChanges())
                    {
                        oleDap.Update(ds, "工作数据");  //保存
                    }                    con.Close();//关闭数据库连接

解决方案 »

  1.   

    http://baike.baidu.com/view/2814849.htm
      

  2.   

    补充说明一下,在生成ds后,对数据做了一些修改后才保存的。     //先读取MDB数据库里的数据出来
                string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data source='" + MDBPath + "'";
                OleDbConnection oleCon = new OleDbConnection(ConStr);//创建数据库连接对象
                OleDbDataAdapter oleDap = new OleDbDataAdapter(//创建数据适配器对象
                    "select top 7 * from [值班] order by id desc", oleCon);
                DataSet ds = new DataSet();//创建数据集
                oleDap.Fill(ds, "工作数据");//填充数据集
    //………………
    //一些ds数据的修改
    //……………… 
                        if (ds.HasChanges())
                        {
                            oleDap.Update(ds, "工作数据");  //保存
                        }
     
                        con.Close();//关闭数据库连接