2014-09-19 151 views
0
using System; 
    using System.Collections.Generic; 
    using System.Linq; 
using System.Text; 
using MySql.Data.MySqlClient; 


namespace dbTest 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

     string sqlStr = "Database=weather;Server=127.0.0.1;Uid=root;Password=123456;pooling=false;CharSet=UTF8;port=3306"; 

      MySqlConnection mysql = new MySqlConnection(sqlStr); 

      mysql.Open(); 

      Console.WriteLine("SUCCESS"); 

       mysql.Close(); 
     } 
    } 
} 

運行了句 「mysql.Open()」 時,它會崩潰爲什麼當我使用MysqlConnection.open()時它不起作用?

有誰知道爲什麼嗎? 錯誤消息是: - 未處理的異常:System.Collecions.Generic.KeyNotFoundException:該密鑰不在字典中 -in System.Collections.Generic.Dictionary'2.get_Item(TKEY KEY) -in Mysql.Data .MySqlClient.CharSetMap.GetCharacterSet(DBVersion版本,字符串的charsetName) -in Mysql.Data.MySqlClient.CharSetMap.GetEncoding(DVversion版本,字符串的charsetName) -in Mysql.Data.MySqlClient.Driver.Configure(的MySqlConnection連接) - 在Mysql.Data.MySqlClient.Mysqlconnection.Open() -in dbTest.Program.Main(String [] args)location:blahblah ...

+3

'KeyNotFoundException'?你確定這個異常來自其他地方嗎? – 2014-09-19 12:06:04

+0

我不知道爲什麼會發生。 – Otwo 2014-09-19 12:09:22

+2

大概是因爲密鑰不在字典中。也許你可以分享整個錯誤(包括堆棧跟蹤),或者我們應該猜測? – David 2014-09-19 12:09:26

回答

4

您正在指定一個無效的字符集。看看this reference

注意!使用小寫值utf8而不是大寫UTF8,因爲這會失敗。

值是區分大小寫的,應該是小寫:

Database=weather;Server=127.0.0.1;Uid=root;Password=123456;pooling=false;CharSet=utf8;port=3306 

誠然這是一個無用的錯誤信息,但它是什麼,我想。 (這就是爲什麼閱讀堆棧跟蹤通常比消息本身更有用,因爲它可以爲研究答案提供基礎。)

+0

檢查複選標記後:http://meta.stackoverflow.com/questions/267818/stack-overflow-helped-me-with-my-problem-on-which-network-can-i-share-my-succes 。 – 2014-09-19 12:26:13

相關問題