在写asp.net时,用ado.net连接了mysql数据库,其中有一句sql语句始终查询不到结果
代码如下:
connection参数里面有一个charset=utf8,如果没有这句话的话,sql中文会出现编码问题,找了很久才解决这个问题,,最终在这篇博文中的连接语句中发现异常,我单独发出来,希望能对和我一样迷茫的小伙伴有所帮助。
参数里面有一个charset=utf8,如果没有这句话的话,sql中文会出现编码问题
我的province是中文,之前一直没有charset=utf8这句话,始终查询不到结果。
原先:
string connection = "server=localhost;user id=root;password=1234;database=new_exp5; pooling=true;";
更改后: string connection = "server=localhost;user id=root;password=1234;database=new_exp5; pooling=true;charset=utf8;";
以下为连接过程
province = "'" + province + "'";
//参数里面有一个charset=utf8,如果没有这句话的话,sql中文会出现编码问题
string connection = "server=localhost;user id=root;password=1234;database=new_exp5; pooling=true;charset=utf8;";
MySqlConnection conn = new MySqlConnection(connection);
string sqlQuery = "select sc_city.name " +
"from sc_city inner join sc_province " +
"on provincecode=sc_province.code " +
"where sc_province.name="+province;//这个sql语句中有中文(province)
MySqlCommand comm = new MySqlCommand(sqlQuery, conn);
conn.Open();
MySqlDataReader dr = comm.ExecuteReader();
Response.Write(conn.State);
int j = 0;
for (int i = 0; dr.Read(); i++)
{
arry += Convert.ToString(dr["name"]) + ",";
j++;
}
Response.Write("j=" + j);
//string result = arry.Remove(arry.Length - 1);
conn.Close();