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 = "小学一年级";
结果还是提示的和上面的一样 ------其他解决方案-------------------- 求大神指点啊 ------其他解决方案-------------------- 搞定了,谢谢楼上两位的热心回答 ------其他解决方案--------------------