我用的是DataGrid  库是Access
在DataGrid修改数据后,更新时总提示"违反并发性....."代码如下:
  fileDBPath是程序的启动路径,StuInfoDS 是DataSet
  数据库的连接在底层,连接没有问题
  这里插入和更新写在一起,若只作插入,则没有问题 请高手赐教
 public  bool saveStuInfo(string fileDBPath,StuInfoDS Studs)
        {
            try
            {
                OleDbConnection oleDbCon = sqlCon.oleDbCon(fileDBPath);
                OleDbDataAdapter oleDA = new OleDbDataAdapter();
                string sqlInsert = "INSERT INTO stuInfo(stuID, stuName, stuSex, stuBirth, stuTel, stukindergarten, stuAddress,stuSchoolYear, stuStudyPoint)values(@StuID,@StuName,@StuSex,@StuBirth,@StuTel,@Stukindergarten,@StuAddress,@StuSchoolYear,@StuStudyPoint)";
                oleDA.InsertCommand = new OleDbCommand(sqlInsert, oleDbCon);
                oleDA.InsertCommand.Parameters.Add("@StuID", OleDbType.Integer, 4, "stuID");
                oleDA.InsertCommand.Parameters.Add("@StuName", OleDbType.VarChar, 16, "stuName");
                oleDA.InsertCommand.Parameters.Add("@StuSex", OleDbType.VarChar, 2, "stuSex");
                oleDA.InsertCommand.Parameters.Add("@StuBirth", OleDbType.VarChar, 128, "stuBirth");
                oleDA.InsertCommand.Parameters.Add("@StuTel", OleDbType.VarChar, 20, "stuTel");
                oleDA.InsertCommand.Parameters.Add("@Stukindergarten", OleDbType.VarChar, 100, "stukindergarten");
                oleDA.InsertCommand.Parameters.Add("@StuAddress", OleDbType.VarChar, 200, "stuAddress");
                oleDA.InsertCommand.Parameters.Add("@StuSchoolYear", OleDbType.VarChar, 128, "stuSchoolYear");
                oleDA.InsertCommand.Parameters.Add("@StuStudyPoint", OleDbType.VarChar, 100, "stuStudyPoint");                string sqlUpdata = "update stuInfo set stuID=@StuID,stuName=@StuName,stuSex=@StuSex,stuBirth=@StuBirth,stuTel=@StuTel,stukindergarten=@Stukindergarten,stuAddress=@StuAddress,stuSchoolYear=@StuSchoolYear,stuStudyPoint=@StuStudyPoint where ID=@id";
                oleDA.UpdateCommand = new OleDbCommand(sqlUpdata, oleDbCon);
                oleDA.UpdateCommand.Parameters.Add("@id", OleDbType.Integer, 4, "ID");
                oleDA.UpdateCommand.Parameters.Add("@StuID", OleDbType.Integer, 4, "stuID");
                oleDA.UpdateCommand.Parameters.Add("@StuName", OleDbType.VarChar, 16, "stuName");
                oleDA.UpdateCommand.Parameters.Add("@StuSex", OleDbType.VarChar, 2, "stuSex");
                oleDA.UpdateCommand.Parameters.Add("@StuBirth", OleDbType.VarChar, 128, "stuBirth");
                oleDA.UpdateCommand.Parameters.Add("@StuTel", OleDbType.VarChar, 20, "stuTel");
                oleDA.UpdateCommand.Parameters.Add("@Stukindergarten", OleDbType.VarChar,  100, "stukindergarten");
                oleDA.UpdateCommand.Parameters.Add("@StuAddress", OleDbType.VarChar, 200, "stuAddress");
                oleDA.UpdateCommand.Parameters.Add("@StuSchoolYear", OleDbType.VarChar, 128, "stuSchoolYear");
                oleDA.UpdateCommand.Parameters.Add("@StuStudyPoint", OleDbType.VarChar, 100, "stuStudyPoint");
                oleDA.Update(Studs, "stuInfo");
                oleDbCon.Close();
                return true;
            }
            catch (Exception ex)
            {
                string error = ex.Message;
                return false;
            }
        }