2014-11-05 64 views
0

下面是代碼,我在打開連接時出錯。執行此操作時的連接狀態已關閉。該操作對於交易狀態無效

 using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString)) 
     { 
      using (SqlCommand cmd = con.CreateCommand()) 
      { 
       cmd.CommandType = cmdType; 
       cmd.CommandText = CommandName; 
       //cmd.Parameters.AddRange(pars); 
       if (pars != null) 
       { 
        cmd.Parameters.AddRange(pars); 
       } 

       try 
       { 
        **if (con.State != ConnectionState.Open) 
        { 
         con.Open(); 
        }** 

        result = cmd.ExecuteNonQuery(); 
       } 
       catch 
       { 
        throw; 
       } 
       finally 
       { 
        con.Close(); 
       } 
      } 
+0

請勿關閉並重新打開連接 – Zache 2014-11-05 15:06:37

+1

異常的確切文本是什麼? – MatthewMartin 2014-11-05 15:10:10

回答

1

它的一切都在你的IF條件。即使ConnectionState

你的IF語句可能是真實的,因爲它不等於開放

然後,它會去嘗試打開連接,但它已經打開並被打破。所以,它將無法再打開它。

剛剛擺脫的,如果條件並嘗試執行它。

+0

'IF'循環?!這是一個有條件的,而不是一個循環。 – 2014-11-05 15:56:55

+0

我的不好。編輯我的回答 – user2327795 2014-11-05 16:36:00

+0

感謝您的回覆...所以我需要打開連接並再次關閉它? 在我之間也得到了這個錯誤,但它只是一次。 該操作對於交易狀態無效。 TryOpenConnection在文件中的偏移量爲16:line:column :0:0 – Rujj 2014-11-06 05:04:07

相關問題