C#连接MySQL 问题集锦及解决方案
作者:admin 日期:2011-09-12
问题1:
when casting from a number,the value must be a number less than infinity
解决办法:用Convert.ToInt32代替int
eg:
this.SALEID = (int)value => this.SALEID = Convert.ToInt32(value);
原因:object不能用(int)转换
问题2:too many connections
解决办法:
1.在使用MYSQL数据源的地方加入try/catch/finally
2.检查MySqlConnection使用后是否有做close()
3.不要把MysqlConnection连接弄成 static 的,每次连接都创建一个新的连接
eg:
MySql.Data.MySqlClient.MySqlConnection mysqlConnection = new MySqlConnection(SDS.SMS.DAL.SqlHelper.strSMS);
mysqlConnection.Open();
string selectCommand = "select id,model,number,brand,sendtime,pubdate,autoinsert_flag,mobilephone from tbl_saledata where autoinsert_flag=0 and sendtime='" + date + "'";
try
{
IList Ilst = new List();
using (MySqlDataReader dr = MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(SDS.SMS.DAL.SqlHelper.strSMS, selectCommand))
{
while (dr.Read())
{
Ilst.Add(Populater(dr));
}
return Ilst;
//关闭
dr.Close();
mysqlConnection.Close();
}
}
catch (Exception e)
{
throw e;
}
finally
{
mysqlConnection.Close();
}
问题3:用datagridview显示mysql的中文数据出现乱码
字符串的问题
public static readonly string strSMS = "server=198.11.3.256;user id=angelbaby;password=5201314;database=mas;charset=utf8";
暂时碰到这几个问题,未完待续
when casting from a number,the value must be a number less than infinity
解决办法:用Convert.ToInt32代替int
eg:
this.SALEID = (int)value => this.SALEID = Convert.ToInt32(value);
原因:object不能用(int)转换
问题2:too many connections
解决办法:
1.在使用MYSQL数据源的地方加入try/catch/finally
2.检查MySqlConnection使用后是否有做close()
3.不要把MysqlConnection连接弄成 static 的,每次连接都创建一个新的连接
eg:
复制内容到剪贴板 程序代码
MySql.Data.MySqlClient.MySqlConnection mysqlConnection = new MySqlConnection(SDS.SMS.DAL.SqlHelper.strSMS);
mysqlConnection.Open();
string selectCommand = "select id,model,number,brand,sendtime,pubdate,autoinsert_flag,mobilephone from tbl_saledata where autoinsert_flag=0 and sendtime='" + date + "'";
try
{
IList
using (MySqlDataReader dr = MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(SDS.SMS.DAL.SqlHelper.strSMS, selectCommand))
{
while (dr.Read())
{
Ilst.Add(Populater(dr));
}
return Ilst;
//关闭
dr.Close();
mysqlConnection.Close();
}
}
catch (Exception e)
{
throw e;
}
finally
{
mysqlConnection.Close();
}
问题3:用datagridview显示mysql的中文数据出现乱码
字符串的问题
复制内容到剪贴板 程序代码
public static readonly string strSMS = "server=198.11.3.256;user id=angelbaby;password=5201314;database=mas;charset=utf8";
暂时碰到这几个问题,未完待续
[本日志由 admin 于 2011-09-12 03:35 PM 更新]
上一篇: 成功销售的基本理念和原则下一篇: C# Winform 使用 MYSQL 新增,读取数据乱码问题
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: C#连接MySQL too many connections
相关日志:
评论: 0 | 引用: 0 | 查看次数: 7287
发表评论