2014-11-05 8 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

+1

정확한 예외 텍스트는 무엇입니까? – MatthewMartin

답변

1

모든 것이 IF 조건에 포함됩니다. ConnectionState 깨진 경우에도이 동일하지 않은 개방 때문에

귀하의 IF 문은 사실 일 수 있습니다.

그런 다음 연결을 열려고 시도하지만 이미 열려있어 깨졌습니다. 그래서, 다시 열 수 없습니다.

IF 조건을 제거하고 실행 해보십시오.

+0

'IF' 루프 ?! 그것은 조건이 아니라 루프입니다. –

+0

실례합니다. 내 대답을 편집 – user2327795

+0

답장을 보내 주셔서 감사합니다 ... 그래서 연결을 열고 다시 닫아야합니까? 사이에이 오류가 있지만 한 번만 발생했습니다. 작업이 트랜잭션 상태에 유효하지 않습니다. TryOpenConnection (파일에서 16 오프셋) : line : column <파일 이름 unknown> : 0 : 0 – Rujj

관련 문제