1、VS 2005
2、Gentle.Net
3、MySQL5免安装版(没有使用my.ini文件)
2、Gentle.Net
3、MySQL5免安装版(没有使用my.ini文件)
解决方案 »
- {"无法执行该操作,因为链接服务器 \"self\" 的 OLE DB 访问接口 \"MSDASQL\" 无法启动分布式事务。"}
- 如何解决“无法创建字段 student1 的子列表“这个问题?
- asp.net 跳转 asp
- C#使用MSComm32做串口编程的问题
- 如何在cs文件中写javascript教本,让他自动生成到aspx文件的html中
- 用过webbrowser控件的看一看
- C#+WebService的部属实例
- 在线等:一个table里放了许多radiobutton 怎么把它们设置成为单选?
- 再次求助:怎么样实现恢复、取消(Undo,Redo)操作?
- 检索 COM 类工厂中 CLSID 为 {...00000000046} 的组件时失败,原因是出现以下错误: 8000401a
- 用MySQL Connector Net 1.0.7连MYSQL的时候,最后做安装包该怎么处理
- 我在webservice构造函数中定义了参数,可使用时确引用不了参数?????
执行set names gb2312后,已存在的数据库的编码不会变
新建数据库才用新的编码
西文一般问题不大,均可正确显示;
现在的问题是在Command Line Client下通过使用set names gbk就可以正常显示、修改中文信息了,但程序中就不行。
详细说明如下:误区:
近几天来搜索网上资源介绍理论上的可选编码方案为:gb2312/gbk/utf8等支持双字节的编码类型均可,实际试验过程中发现并不是这样的。
A、大家跟风都想使用utf8,但UTF8在处理中文时并非想像中的理想,Select/Update/Insert均出现乱码;
B、gbk字符集远大于gb2312,是第二首选字符集,但在Server/Database设定为GBK字符集后,在程序中连接都不成功(not support),更不用说操作;最终解决方案:
1、选用gb2312编码
2、设置my.ini文件中的默认编码
分别在[mysql]和[mysqld]配置段中增加或修改default_charater_set=gb2312
3、创建数据库时编码选用gb2312
4、创建表时编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)
5、针对具体需要存放中文的字段设定编码选用gb2312,Collation选用gb2312_chines_ci(gb2312_bin没有去试验)改进:
如果确实需要存放gbk编码字符,请在连接成功后执行set names gbk其他还有补充的请及时回复,今天17:00结贴,会把大家的建议进行总结。
{
protected void Page_Load(object sender, EventArgs e)
{
this.time.Text = DateTime.Now.ToString();
this.topic.Text = Session["topic_id"].ToString();
string topic_id = this.topic.Text.Trim();
//建立数据库连接
MySQLConnection DBConn;
DBConn = new MySQLConnection(new MySQLConnectionString("localhost", "crm1", "root", "123", 3306).AsString);
DBConn.Open();
//防止出现中文显示问题
MySQLCommand cmd = new MySQLCommand("set charset gb2312", DBConn);
//或者是 MySQLCommand cmd=new MySQLCommand("set charset gbk",conn);也可以.我都试过.
cmd.ExecuteNonQuery();
//执行查询命令
string query = "select * from customers_dtf1 where topic_id = topic_id";//这里是中文输入的文本
MySQLCommand cmd2 = new MySQLCommand(query, DBConn);
DBConn.Open();
MySQLDataReader reader = cmd2.ExecuteReaderEx() ;//以下是如何将数据从数据库取出来,然后显示到想显示的地方 if (reader.HasRows)
{
reader.Read();
this.name.Text = reader.GetString(1);
}
else
this.name.Text = "失败";
}
}
怎么我的还是不行