2014-04-29 5 views
1

데이터베이스에 연결할 때 잘못된 자격 증명으로 테스트 할 때 예외가 발생합니다. 연결 코드가 별도의 클래스에 있으며 이미 오류가 있습니다.이 예외를 처리하는 방법

하지만 내 mainWindow.xaml.cs에있는 생성자를 호출 할 때 다른 예외가 발생하는 것으로 보입니다. 이 두 번째 예외는 어떻게 처리합니까? 내 MainWindow 페이지에서 다른 try/catch를했는데 예외가 계속 발생합니다. 제발 조언.

//Code at class SimpleDataSource which does the connection: 

public void Connect(string server, string database, int port, string user, string password) 
     { 
      // TODO: Initialise MySqlConnection object with parameters, 
      // open connection with suitable exception handling. 
      string connStr = "server=" + server + ";database=" + database + ";port=" + port + ";user=" + user + ";password=" + password + ";"; 

      try 
      { 
       conn = new MySqlConnection(connStr); 
       conn.Open(); 
      } 
      catch (MySqlException e) 
      { 
       MessageBox.Show(@"Unable to connect to database. 
           Please check the following and try again. 
           1. Ensure you have an internet connection. 
           2. Ensure your credentials are entered correctly"); 
       Console.WriteLine("The error is " + e); 
      } 

     } 

//Calling the constructor for that class on my MainWindow which is causing the exception: 
SimpleDataSource dataSource; 
try { dataSource = new SimpleDataSource("111.111.11.11", "eeeee", 3306, "eeeee", "eeee"); } 
catch (MySqlException e) { e.StackTrace.ToString();} 

오류 메시지 : 내가 XamlParseException 대신 MySqlException과 같은 결과를 교환하기 위해 노력했다. enter image description here

+0

생성자의 일부가 예외를 throw합니다. 위의 방법이라고 생각되면 첫 번째 줄에 중단 점을 놓고 코드를 단계별로 실행하십시오. 아니면'catch (MySqlException e)'다음에 다른 모든 유형의 예외에 대해 다른 catch를 추가하고 콘솔에 출력하여 그 내용을 볼 수 있습니다. –

+0

예외 대화 상자에서'Viewdetail'을 클릭하여 오류의 원인을 확인하십시오. 이 예외 (XamlParseException)는 일부 xaml 파일에 잘못된 xaml 태그 또는 속성 값이 사용되면 응용 프로그램로드시에 발생합니다. xaml 파일의 구문이 올바른지 확인해야합니다. – VS1

+0

@ VS1을 두 번 확인하면 내 오류는 내 클래스 파일이 아닌 내 MainWindow.xaml 페이지 자체에 있음을 의미합니까? –

답변

1

MainWindow() 생성자에 포함 된 코드를 게시 할 수 있습니까? xaml의 세 번째 줄에 오류가 있음에도 불구하고 오류는 다른 곳에서 발생합니다. 생성자가 아닌 xaml.cs 페이지에서; 당신은 당신의 데이터베이스와 대화하는 모든 기능을 호출하고 있습니까?

귀하의 InitialiseComponent()를 찾으십시오. 데이터베이스와 상호 작용하는 모든 함수를 호출하고 있습니까? 예인 경우 해당 행 그룹을 선택하고 중단 점을 추가하고 응용 프로그램을 실행하십시오.

관련 문제