2014-04-19 5 views
-1

C# 클래스에서 작업 중입니다. 이 오류를 제외하고는 모두 정상적으로 작동합니다.이 오류를 해결하는 방법 'covert'system.data.sqlclient.sqlconnection 'to'string ''

Convert 'system.data.sqlclient.sqlconnection' to 'string'

이 오류를 해결하려면 다음과 같이 응답하십시오.

코드 :

public void CreateConn() 
{ 
    try 
    { 
     if (constr.State == 0) 
     { 
      constr.ConnectionString = strConnString; 
      constr.Open(); 
     } 
    } 
    catch (Exception exp) 
    { 
     throw exp; 
    } 
} 
오류가이 라인에서 발생

:

constr.ConnectionString = strConnString; 
+0

'strConnString'이 문자열로 선언되어 있습니까? – Steve

+0

SqlConnection strConnString = 새 SqlConnection (ConfigurationManager.ConnectionStrings [ "RegistrationConnectionString"]. 연결 문자열); – user3501237

+1

그리고 그 문제는, strConnString은 SqlConnection 문자열이 아니야 – Steve

답변

1

사용 당신의 ConfigurationManager에 의해 반환되는 문자열

public void CreateConn() 
{ 
    if (constr.State == ConnectionState.Closed) 
    { 
     constr.ConnectionString = ConfigurationManager.ConnectionStrings 
            ["RegistrationConnectionStri‌​ng"].ConnectionString; 
     constr.Open(); 
    } 
} 

코드에서 오류가 할당하려고 간단한 문자열 인 ConnectionString 속성에 대한 SqlConnection의 인스턴스입니다.
변수 strConnString에 오해의 소지가있는 이름이 있으며이 맥락에서 전혀 필요하지 않습니다.

예외가 발생하지 않고 단순히 다시 예외를 적용하면 예외 데이터의 스택 정보가 삭제되기 때문에 유용하지 않은 try/catch를 제거한 것을 알 수 있습니다.

피할 수있는 또 다른 사항은 연결 상태를 확인하기 위해 상수 0을 사용하는 것입니다.이 코드를 컴파일 할 때 문제가 발생할 수 있다고 생각합니다. 적절한 열거 형을 사용해야합니다.

관련 문제