日期:2014-05-17  浏览次数:20418 次

ASp.net使用MYsql数据库 带中文参数的参训语句的结果为空
我的Mysql数据库设置的编码方式是utf8,但是在网页中使用带中文的查询语句一直显示得到的结果为空。‘在连接字符串中设定Charset=utf8后,改提示“输入字符串的格式不正确。”
代码如下:
db.reDt("select * from gradeChapter where grade='小学一年级'");
下面是这个函数的内容
 public DataSet reDt(string cmdstr)
    {
         MySqlConnection con = GetCon();
         con.Open();
         MySqlDataAdapter da = new MySqlDataAdapter(cmdstr,con);
         DataSet ds=new DataSet();
         da.Fill(ds);
        return ds;
    }
请各位前辈指点迷津
------最佳解决方案--------------------
试一试

"select * from gradeChapter where grade=N'小学一年级'")
------其他解决方案--------------------
换个号继续顶
------其他解决方案--------------------
可以使用Parameters.add()试一下
------其他解决方案--------------------
数据库的连接字符串  
connectionString="server=localhost;User Id=root;pwd=admini; Persist Security Info=True;database=database;Charset=utf8"
------其他解决方案--------------------
还是提示正确
输入字符串的格式不正确。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 229:    protected ArrayList DropDownSource2()
行 230:    {
行 231:        int n = Convert.ToInt32(db.reDt("select * from gradeChapter where grade=N'小学一年级'").Tables[0].Rows[0][0].ToSt
------其他解决方案--------------------
使用Parameters.add()也不行。。。
        string sqlstr = "select * from gradeChapter where grade=@grade";
        int n = Convert.ToInt32(db.reDt(sqlstr).Tables[0].Rows[0][0].ToString());

下面是函数的内容
         MySqlDataAdapter da = new MySqlDataAdapter(cmdstr,con);
         da.SelectCommand.Parameters.Add("@grade", MySqlDbType.VarChar, 50);
         da.SelectCommand.Parameters["@grade"].Value = "小学一年级";
结果还是提示的和上面的一样
------其他解决方案--------------------
求大神指点啊
------其他解决方案--------------------
搞定了,谢谢楼上两位的热心回答
------其他解决方案--------------------
引用:
换个号继续顶


我晕,这个算倒分了吧,下不为例。