2014-04-09 2 views
6

모든 서비스 팩, C# 및 .NET Framework 4.5가 포함 된 Visual Studio 2012 Ultimate 에디션으로 WinForm 응용 프로그램을 개발하고 있습니다. 이 스택으로내부 .NET Framework 데이터 공급자 오류 1

Internal .Net Framework Data Provider error 1 

:

나는이 예외가

en System.Data.ProviderBase.DbConnectionInternal.PrePush(Object expectedOwner) 
    en System.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternal obj, Object owningObject) 
    en System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) 
    en System.Data.SqlClient.SqlConnection.CloseInnerConnection() 
    en System.Data.SqlClient.SqlConnection.Close() 
    en AdoData.TRZIC.DisposeCurrentConnection() 
    en AdoData.TRZIC.Finalize() 

소멸자에서 :

~TRZIC() 
{ 
    DisposeCurrentConnection(); 

    if (this.getCodeCmd != null) 
     this.getCodeCmd.Dispose(); 
} 

private void DisposeCurrentConnection() 
{ 
    if (this.conn != null) 
    { 
     if (this.conn.State == ConnectionState.Open) 
      this.conn.Close(); 

     this.conn.Dispose(); 
     this.conn = null; 
    } 
} 

I 라인 this.conn.Close();에서 예외를 얻을.

그리고 conn

private SqlConnection conn = null; 당신은 이유를 알고 있습니까입니까?

+0

몇 가지 실수가 있습니다, 당신은 this.conn'에 필요하지 않습니다 = null;'을 삭제 한 후'DisposeCurrentConnection()'을 호출하기 전에 명령을 폐기하는 것이 좋습니다. – RezaRahmati

답변

10

여기 해결책을 찾았습니다 : http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/b23d8492-1696-4ccb-b4d9-3e7fbacab846/.

은 기본적으로 다음과 같습니다

주의
닫기 전화 또는 클래스의 Finalize 메서드에 연결, DataReader를, 또는 기타 관리 객체에 폐기하지 마십시오. 종료 자에서 클래스가 직접 소유하는 관리되지 않는 리소스 만 릴리스해야합니다. 클래스가 관리되지 않는 리소스를 소유하지 않은 경우 클래스 정의에 Finalize 메서드를 포함하지 마십시오. 자세한 내용은 가비지 수집을 참조하십시오.

0

이 대답하지 않고, 난 강력하게이 방법을 통해 연결을 사용하는 것이 좋습니다 당신은 폐기 객체

에 대한 우려 필요가없는
using (SqlConnection connection = new SqlConnection(connectionString)) 
{  
    try  
    { 

      connection.Open(); 
      SqlCommand command = new SqlCommand("......", connection); 
      command.ExecuteNonQuery();  
    } 
    catch (Exception) 
    { 
     /*Handle error*/ 
    } 

} 
관련 문제