我用的是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;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货