[已关闭问题] ADO.NET問題(ORA-01453)
提问时间: 2007-12-08 09:53
悬赏分:10 提问时间2007/12/8 9:53:54 问题为何被关闭 浏览:622 次
在執行事務時,發生下面錯誤,哪位大蝦遇到過,賜教一二:
ORA-01453: SET TRANSACTION 必須是交易中的第一個敘述句

代碼如下:

using(OracleConnection conn = new OracleConnection(new ConnDBString.ConnDBStringConfig()["4"]))
   {
    conn.Open();
    OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
    
    OracleCommand cmd = new OracleCommand("SELECT * FROM DUAL");
    cmd.Connection = conn;
    cmd.Transaction = trans;
    try
    {
     cmd.ExecuteNonQuery();
     cmd.CommandText = "SELECT * FROM DUAL";
     cmd.ExecuteNonQuery();
     trans.Commit();
    }
    catch(Exception ex)
    {
     trans.Rollback();
     throw new Exception(ex.Message);
    }   

}

提问者:陳龑 - 菜鸟二级

问题补充:同一句sql執行兩次和執行select,只是在測試事務!
我已經初步知道哪里出錯了,但是不知道為什么會出錯。
那位大俠知道,請賜教!

錯誤是在我把事務隔離級別(transaction isolation level)設置為
ReadCommand。
語句如下:OracleTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
用頁面測試就會出錯!

(4)
我们是用sql server 数据库的
9个月前   回答者:刘柏平 - 菜鸟二级
我用的sql server 在执行查询的时候也用事务吗?我没用过 我只有在更新数据或者在插入数据的时候才用到事务 cmd.ExecuteNonQuery(); cmd.CommandText = "SELECT * FROM DUAL"; cmd.ExecuteNonQuery(); 同样的语句还提交了两次?没明白 PS:如有错误,请后面的各位大侠指正
9个月前   回答者:Vincent Luo - 菜鸟二级
跟楼上同解,怎么执行两次命令?
9个月前   回答者:Shing Ye - 初学一级
select而已,不需要用到事务吧?
9个月前   回答者:Klesh Wong - 小虾三级
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接