private ListexecuteSQL(string sql) { MySqlConnection conn = null; string connStr = string.Format("server={0};user id={1};password={2};port={3};database=mysql;pooling=false;charset=utf8", "192.168.11.111", "root", "XXXX", 3306); try { conn = new MySqlConnection(connStr); conn.Open(); MySqlDataReader reader = null; MySqlCommand cmd = new MySqlCommand(sql, conn); try { reader = cmd.ExecuteReader(); List list = new List (); while(reader.Read()) { if(reader.HasRows) { list.Add(reader.GetString(0)); } } Thread.Sleep(2000); reader.Close(); conn.Close(); return list; } catch(Exception e) { Console.WriteLine(e.Message); } } catch(Exception ex) { Console.WriteLine(ex.Message); } return null; }
说明:
1. 数据库连接字符串中pooling=false,并在读完数据后显示关闭连接是最好的方式。
2. 若pooling=false并且没有显示关闭数据库连接,则连接在过一段时间后自动关闭。
3. pooling=true,即使加了显示关闭连接,也不是马上就关闭数据库连接的!
需要添加第三方库(添加引用):
具体参考: