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

关于dataset更新时错误提示要求有效的UpdateCommand
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();//关闭数据库连接

------最佳解决方案--------------------
http://baike.baidu.com/view/2814849.htm
------其他解决方案--------------------
补充说明一下,在生成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, "工作数据");  //保存