MySQL 데이터베이스에 연결할 때 오류 처리를 시도합니다. 연결 오류와 SQL 오류를 구분하고 싶습니다. 문제는 반환되는 오류가 MySQL 오류가 아닌 사실 MS 오류 인 것입니다. 이것은 내가 뭐하는 거지입니다 :WPF MySQL 연결 오류 처리
MySql.Data.MySqlClient :
using (MySqlConnection con = new MySqlConnection(ConString)) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd = new MySqlCommand(sqlCMD, con); try { System.Security.Cryptography.RSACryptoServiceProvider.UseMachineKeyStore = true; var provider = new System.Security.Cryptography.RSACryptoServiceProvider(); con.Open(); da.SelectCommand = cmd; da.Fill(dt); con.Close(); } catch (Exception x) { //Amazing error catching code } }
가 지금은 MySQL이 설치되지 않은 컴퓨터에 연결을 시도라고 할 수 있습니다,이 반환되는 것을 제외하고는 .MySqlException (0x80004005) : 지정된 MySQL 호스트에 연결할 수 없습니다. MySql.Data.MySqlClient.Driver.Create에서 MySql.Data.MySqlClient.Driver.Open() 에서 MySql.Data.MySqlClient.NativeDriver.Open() (MySqlConnectionStringBuilder 설정) 에서 MySql.Data.MySqlClient.MySqlPool에서 MySql.Data.MySqlClient.MySqlConnection.Open에서 MySql.Data.MySqlClient.MySqlPool.GetConnection() 에서 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 에서 .GetPooledConnection() ()
지금 인터넷 검색 "0x80004005 MySQL은"스택 오버플로에 C#을 MySQL에 연결에 대한 여러 스레드를 반환합니다. 그냥 검색을 수행 0x80004005 returns a Windows XP error message page.
그래서 내가 가장 좋은 방법은 연결 오류를 결정하는 가장 좋은 방법은 SQL 오류 메시지 대 질문?
이 예를 살펴 보자. (정확한 예외 유형이 아님) try {} catch (MySqlConnectionException) {} catch (MySqlQueryException). 1 가지 이상의 예외 유형, 특히 일반적인 예외를 포착하고 처리 할 수 있습니다. 이 외에도 일반 예외를 조사하고 기본 예외 유형을 판별해야합니다. 이 예제를 https : //dev.mysql과 함께 살펴보십시오.co.kr/doc/connector-net/ko/connector-net-programming-connecting-errors.html – Bearcat9425
@ Bearcat9425 너무 답장 해 주신 분은 실제 답변이 아니라 댓글로 답변하셨습니다. 나는 너에게 신용을 줬을거야. 내가 할 수있는 전부는 의견에 투표하는 것입니다. 다음에 내가 대답 할 것이면 답을 줄 것입니다. – Xaphann
이 질문에 관해 다른 사람을 언급 할 때 내 의견을 답으로 게시했습니다. 나는 당신이 이미 대답을 표시했음을 알고 있지만 대답의 나의 버전을 넣을 것이라고 생각했습니다. – Bearcat9425