C#连接MySQL 问题集锦及解决方案

问题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";




暂时碰到这几个问题,未完待续

[本日志由 admin 于 2011-09-12 03:35 PM 更新]
上一篇: 成功销售的基本理念和原则
下一篇: C# Winform 使用 MYSQL 新增,读取数据乱码问题
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: C#连接MySQL too many connections
相关日志:
评论: 0 | 引用: 0 | 查看次数: 7319
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭