mysql.exe 参数,MySqlParameter 参数问题

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,cmd,GBK,问题,参数,sql,字节,name

来源: https://www.cnblogs.com/hddxp/p/14250869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值