2012-12-03 49 views
1

可能重複:
ExecuteNonQuery requires the command to have a transaction error in my code錯誤時使用事務

strSQL = "insert into............"; 

SqlTransaction objSqlTransaction = Master.objSqlDbComm.SqlConnectionObject.BeginTransaction(); 
try 
{ 
    Master.objSqlDbComm.ExecuteNonQuery(strSQL); 
    objSqlTransaction.Commit(); 
} 
catch(Exception) 
{ 
    objSqlTransaction.Rollback(); 
} 
finally 
{ 
    objSqlTransaction.Dispose(); 
} 

當我使用上面的代碼得到錯誤

的ExecuteNonQuery要求命令有一個交易當連接分配給該命令的n處於未決的本地事務中。該命令的Transaction屬性尚未初始化。

+1

您需要設置交易對象'objSqlTransaction'的參考'command.Transaction'財產。 – adatapost

+0

當您收到錯誤消息時,請在google中輸入它,然後單擊導致堆棧溢出的第一個鏈接。機會高於平均水平,那就是你的答案! – dasblinkenlight

+0

爲什麼我必須創建新的sqlcommand對象..... – lax

回答

0

你需要給命令對象ExecuteNonQuery

做這樣的事情:

SqlCommand cmd = new SqlCommand(your_sqlText, your_sqlcon, your_sqlTrans); 

    cmd.ExecuteNonQuery(); 
+0

如何?.................. – lax

+0

爲什麼我必須創建新的sqlcommand對象。 – lax

+0

@lax:因爲executenonquery是命令對象的方法 –