一个Oracle的事务及查询问题 我执行一个操作:先用Connection对象创建事务并开启事务,然后在查询时就报错误说Connection对象在挂起的事务中,然后说Command对象的事务没有初始化 。不知道怎么回事 请教了谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是开事务的 connObj.Open(); transaction = connObj.BeginTransaction(); comdObj.Connection = connObj; comdObj.Transaction = transaction;下面是查询的 dp = new OracleDataAdapter(sql, connObj); dp.Fill(dateset); return dateset;然后我在代码中先开了事务 然后在查询就出错了 private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, string cmdText, OracleParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = CommandType.Text; if (cmdParms != null) { foreach (OracleParameter parameter in cmdParms) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) { parameter.Value = DBNull.Value; } cmd.Parameters.Add(parameter); } } } OracleConnection myConnection = new OracleConnection(myConnString);myConnection.Open();OracleCommand myCommand = myConnection.CreateCommand();OracleTransaction myTrans;myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);myCommand.Transaction = myTrans;try{myCommand.CommandText = "";myCommand.ExecuteNonQuery();myTrans.Commit();}catch(Exception e){myTrans.Rollback();}finally{myConnection.Close();}} wuyq11 你好 你的两段代码都不是执行查询的啊, 我是在事务开启的状态下进行查询操作出错的,能不能帮我想想办法呢 谢谢 这是开事务的 connObj.Open(); transaction = connObj.BeginTransaction(); comdObj.Connection = connObj; comdObj.Transaction = transaction; 下面是查询的 dp = new OracleDataAdapter(sql, connObj); dp.Fill(dateset); return dateset; 既然使用了事务,你在执行完代码块时应该使用Commit提交transaction .Commit()在外层加一个try{}catch(Exception){transaction ,rollback();}如果中间出现异常就回滚,不过事务针对查询好像用得比较少吧 ,基本上都是控制数据库数据操作 帮我把这句sql翻译成Linq 怎样用C#抓取网页内容? C# C/s 调用WebService 问题 高分求解,链接的MHT文件为中文名时,链接里的图表出错显示不了 求这个算法 怎么把一个arraylist传到页面的javascript里用 两个小问题,请帮我看看,1小时结贴 如何刷新(或者是更换绑定)一个已经绑定数据的combobox控件? c#自定义属性问题 如何将FORM1中的Label中的信息,传送到FORM2的Label控件中? winform中的listbox,响应多个键盘按键事件如何弄,谢谢! 100分,怎么写C#的COM+包含一个事件,以及在VC6里面响应
connObj.Open();
transaction = connObj.BeginTransaction();
comdObj.Connection = connObj;
comdObj.Transaction = transaction;下面是查询的
dp = new OracleDataAdapter(sql, connObj);
dp.Fill(dateset);
return dateset;
然后我在代码中先开了事务 然后在查询就出错了
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = CommandType.Text;
if (cmdParms != null)
{
foreach (OracleParameter parameter in cmdParms)
{
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
cmd.Parameters.Add(parameter);
}
}
}
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
myCommand.Transaction = myTrans;try
{
myCommand.CommandText = "";
myCommand.ExecuteNonQuery();
myTrans.Commit();
}
catch(Exception e)
{
myTrans.Rollback();
}
finally
{
myConnection.Close();
}
}
connObj.Open();
transaction = connObj.BeginTransaction();
comdObj.Connection = connObj;
comdObj.Transaction = transaction; 下面是查询的
dp = new OracleDataAdapter(sql, connObj);
dp.Fill(dateset);
return dateset; 既然使用了事务,你在执行完代码块时应该使用Commit提交
transaction .Commit()在外层加一个
try
{
}
catch(Exception)
{
transaction ,rollback();
}
如果中间出现异常就回滚,不过事务针对查询好像用得比较少吧 ,基本上都是控制数据库数据操作