帮忙看一下这段代码哪地方有问题(多表更新)
MAINTABLE为主表,SONTABLE为子表,请问以下代码有何不对:public void Updats(DataSet ds ,string Maintable,string []sontable,string[]sqlstrings)
{
ds.EnforceConstraints = true;//指示在执行更新操作时是否遵循约束规则
if (ds.HasChanges())
{
OpenConnection();
Command = Connection.CreateCommand();
SqlTransaction mystrans;//定义一个事务对像并执行.
mystrans = Connection.BeginTransaction();
Command.Connection = Connection;
Command.Transaction = mystrans;
try
{
TableFill(ds, sqlstrings[0], Maintable);
Adapter.Update(ds.Tables[Maintable].Select(null, null, DataViewRowState.Added | DataViewRowState.ModifiedCurrent));
int i;
for (i = 1; i <= sontable.Length; i++)
{
TableFill(ds, sqlstrings[i], sontable[i - 1]);
Adapter.Update(ds.Tables[sontable[i - 1]]);
}
Adapter.Update(ds.Tables[Maintable].Select(null, null, DataViewRowState.Deleted));
();
}
catch
{
try
{
mystrans.Rollback();//回滚事务.
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
finally
{
ds.Dispose();
Adapter.Dispose();
CloseConnection();
}
}
}
刚执行到: TableFill(ds, sqlstrings[0], Maintable);就直接跳到下面的CATCH语句了,并报错: 此 SqlTransaction 已完成;它再也无法使用。