private List executeSQL(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,即使加了显示关闭连接,也不是马上就关闭数据库连接的!
需要添加第三方库(添加引用): Mysql.Data.dll