Code
public bool Update(string sqlstr, DataSet updateDs, string tableName)
{
updateDs.EnforceConstraints = false;
if (Information.IsNothing(this.dataAdapter))
{
this.InitConnect();
}
this.custCB = new OracleCommandBuilder(this.dataAdapter);
OracleDataAdapter dataAdapter = this.dataAdapter;
try
{
dataAdapter.SelectCommand.Connection.Open();
dataAdapter.SelectCommand.CommandText = sqlstr;
this.myTrans = dataAdapter.SelectCommand.Connection.BeginTransaction();
dataAdapter.SelectCommand.Transaction = this.myTrans;
DataSet changes = updateDs.GetChanges();
if (changes==null)
{
return true;
}
if (changes.Tables.Contains(tableName))
{
dataAdapter.Update(changes, tableName);
changes.Merge(updateDs);
updateDs.AcceptChanges();
this.myTrans.Commit();
}
}
catch (Exception exception1)
{
this.myTrans.Rollback();
throw new ZHException(exception1);
}
finally
{
if (!Information.IsNothing(dataAdapter.SelectCommand.Connection))
{
dataAdapter.SelectCommand.Connection.Close();
}
if (!Information.IsNothing(this.custCB))
{
this.custCB.Dispose();
}
}
dataAdapter = null;
return true;
}
通过相应的语句,将数据提取出来,并用在gridview中进行显示,是利用gridview模板中放textbox的形式,实现在列表中对数据的修改功能,在第一欠获取数据点击保存成功后,如果不对页面进行任何更改后点击保存,将出现下列错误。
{System.Data.DBConcurrencyException: 违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。
是不是上述方法中由于没有对数据集进行任何改变,所以change中不无进行此操作,如何进行更改