void ButtonClick(object sender,System.EventArgs args)
{
OleDbConn.Open();
OleDbTrans=OleDbConn.BeginTransaction();
OleDbComm.Transaction=OleDbTrans;
if (sender==add)
{
//增加新行,添加记录
DataRow dr=ds.Tables[0].NewRow();
dr["name"]="se";
ds.Tables["mis"].Rows.Add(dr);
//更新数据库
try{
OleDbda.Update(ds);
OleDbTrans.Commit();
//更新datagrid
ds.Clear();
OleDbda.Fill(ds,"mis");
}
catch(Exception e)
{
Console.WriteLine("Exceptin 1");
try
{
Console.WriteLine("begin rollback");
OleDbTrans.Rollback();
Console.WriteLine("Commit Rollback");
}
catch(Exception ex)
{
Console.WriteLine("Exception 2"); if (OleDbTrans.Connection!=null)
{
Console.WriteLine("3.OleDbTrans.Connection!=null");
Console.WriteLine("{0}",ex.ToString());
Console.WriteLine("4.OleDbTrans.Connection!=null");
}
}
Console.WriteLine("{0}",e.ToString()); Console.WriteLine("update fiale");
}
finally
{
Console.WriteLine("{0}","连接状态"+OleDbConn.State);
OleDbConn.Close();
Console.WriteLine("OleDbCoonn.Close");
}
}
执行第一遍时没有问题,再次执行时,就提示如下错误:
System.InvalidOperationException: 当分配给命令的连接处于挂起的本地事务中时,命令
必须具有事务对象才能执行。该命令的 Transaction 属性尚未初始化。
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMappi
ng tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet)
at database.data.ButtonClick(Object sender, EventArgs args)
请问是什么原因?
{
OleDbConn.Open();
OleDbTrans=OleDbConn.BeginTransaction();
OleDbComm.Transaction=OleDbTrans;
if (sender==add)
{
//增加新行,添加记录
DataRow dr=ds.Tables[0].NewRow();
dr["name"]="se";
ds.Tables["mis"].Rows.Add(dr);
//更新数据库
try{
OleDbda.Update(ds);
OleDbTrans.Commit();
//更新datagrid
ds.Clear();
OleDbda.Fill(ds,"mis");
}
catch(Exception e)
{
Console.WriteLine("Exceptin 1");
try
{
Console.WriteLine("begin rollback");
OleDbTrans.Rollback();
Console.WriteLine("Commit Rollback");
}
catch(Exception ex)
{
Console.WriteLine("Exception 2"); if (OleDbTrans.Connection!=null)
{
Console.WriteLine("3.OleDbTrans.Connection!=null");
Console.WriteLine("{0}",ex.ToString());
Console.WriteLine("4.OleDbTrans.Connection!=null");
}
}
Console.WriteLine("{0}",e.ToString()); Console.WriteLine("update fiale");
}
finally
{
Console.WriteLine("{0}","连接状态"+OleDbConn.State);
OleDbConn.Close();
Console.WriteLine("OleDbCoonn.Close");
}
}
执行第一遍时没有问题,再次执行时,就提示如下错误:
System.InvalidOperationException: 当分配给命令的连接处于挂起的本地事务中时,命令
必须具有事务对象才能执行。该命令的 Transaction 属性尚未初始化。
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMappi
ng tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet)
at database.data.ButtonClick(Object sender, EventArgs args)
请问是什么原因?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货