首页 > 数据库技术 > 详细

MySqlParameter 参数问题

时间:2021-01-08 15:05:49      阅读:82      评论:0      收藏:0      [点我收藏+]

 

C#链接MYSQL 查询数据时,链接字符串需要加CharSet=gb2312,否则执行带参数的语句时返回null。

 

static string connectionStr = "server=localhost;port=3306;CharSet=gb2312;user=xxx;password=xxx;database=xxx";

string sql = "select * from users where name = @name";
using (MySqlConnection conn = new MySqlConnection(connectionStr))
{
MySqlCommand cmd = new MySqlCommand(sql, conn);
conn.Open();
cmd.Parameters.AddWithValue("@name", "张三");
MySqlDataReader reader = cmd.ExecuteReader();
return ConvertDataReaderToDataTable(reader);
}

 

原因:

一、编码格式简介 

1、UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,被称为通用转换格式;是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8 节省空间;另外,如果是外国人访问你的GBK网页,需要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问;它的通用性比较好。

2、国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。GBK是国家编码,通用性比UTF8差。

二、问题根源

MySQL数据库默认的编码模式为UTF8格式,在使用对应的sql语句查询时,即使数据库连接正常但是对应的内容依然查询不出来,所以需要在MySQL数据库的连接字符串那里设置格式为GB2312即可。

MySqlParameter 参数问题

原文:https://www.cnblogs.com/hddxp/p/14250869.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!