C # 닷넷 MysqlConnector를 ConnectionString 비밀번호 문제 / 이슈

토마스 :

바보 같은 암호 문제에 대한 도움이 필요합니다. 문제 다음 :

일부 암호로 MySQL의 서버에 연결할 수 없습니다 ^^

내가 예를 들어 동일한 "연결 문자열"세부 사항과 암호를 사용하는 경우 :

다음 암호는 MySQL 서버 (따옴표, 큰 따옴표, 세미콜론)에 정확히;

"PWD = 123456 '; // 작품

"PWD = 123,456;"; // 작품

"; PWD = 123; 456; ' // System.ArgumentException

"; PWD = 123; 456; '"// System.ArgumentException

//Connection String Variant 1:

string connString = string.Format("server={0};port={1};uid={2};pwd={3};database={4};sslmode=preferred",
                tbDbServername.Text.ToLower(),
                (uint)Convert.ToInt32(tbDbServerPort.Text),
                tbDbServerUsername.Text.ToLower(),
                tbDbServerPassword.Password,
                tbDbServerDatabase.Text.ToLower()
                );

//Connection String Variant 2:

string connString = string.Format("server={0};port={1};uid={2};pwd='{3}';database={4};sslmode=preferred",
                tbDbServername.Text.ToLower(),
                (uint)Convert.ToInt32(tbDbServerPort.Text),
                tbDbServerUsername.Text.ToLower(),
                tbDbServerPassword.Password,
                tbDbServerDatabase.Text.ToLower()
                );

나는 바보 알고있다. 왜 누군가가 연결 문자열 정보와 암호를 사용합니다 ....하지만이 문제를 해결하기 위해 좋을 것이다.

독일에서 인사말 :)

madreflection :

를 사용하여 MySqlConnectionStringBuilder연결 문자열을 구성 할 수 있습니다. 그것은의 필요한 것을 인용 / 어떤 탈출을 할 것입니다.

귀하의 경우, 당신은이 작업을 수행 할 것입니다 :

MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder()
{
    Server = tbDbServername.Text.ToLower(),
    Port = (uint)System.Convert.ToInt32(tbDbServerPort.Text),
    UserID = tbDbServerUsername.Text.ToLower(),
    Password = tbDbServerPassword.Password,
    Database = tbDbServerDatabase.Text.ToLower(),
    SslMode = MySqlSslMode.Preferred
};

string connString = builder.ConnectionString;

추천

출처http://10.200.1.11:23101/article/api/json?id=5712&siteId=1