[MySQL] SQL语句中文别名乱码问题
2008-08-05 17:44
846 查看
MySQL 驱动下载地址: http://www.mysql.com/products/connector/, 根据自己的使用选择下载
我使用的是ASP.NET, 将下载的驱动解压, 建一个空白WEB项目, 然后引用解压出来的 MySql.Data.dll, 添加一个 test.aspx 文件
test.aspx.vb 文件代码如下:
Imports System.Data
Imports System.Data.Common
Imports MySql.Data.MySqlClient
Partial Class test
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim connection As MySqlConnection
connection = New MySqlConnection("Server=localhost;Database=webanalytics;Uid=root;Pwd=;CharSet=utf8;")
connection.Open()
doTest(New MySqlCommand("select AutoId as `2自动编号4` from Site", connection))
doTest(New MySqlCommand("select `Id` as `desc描述222` from Site;", connection))
doTest(New MySqlCommand("select `Domain` as `3域名2domain` from Site;", connection))
doTest(New MySqlCommand("select `Explain` as `desc描述` from Site;", connection))
connection.Close()
connection.Dispose()
End Sub
Private Sub doTest(ByVal cmd As DbCommand)
Dim reader As DbDataReader = cmd.ExecuteReader()
response.Write("<h3>" & reader.GetName(0) & "</h3>")
While reader.Read
response.Write("<p>" & reader.GetValue(0))
End While
reader.Close()
cmd.Dispose()
End Sub
End Class
在浏览器中查看结果如下:
注:最后一条数据在数据库中就是乱码
经反复测试, 发现问题出现在 DbDataReader, 如果只使用DbDataReader.GetName()获取字段的别名将不会现现乱码, 当读取了数据时, 并且最后一次读取的是非字符串类型, 那么下次(没有关闭连接对象)再次使用DbDataReader读取字段别名时会出现乱码(当然别名得是中文).
这样有以下方案可以解决.
1. 每次使用完 DbDataReader 后关闭连接, 再重新打开;
2. DbDataReader读取完数据之后, 再读一个字符串的字段;
我使用的是ASP.NET, 将下载的驱动解压, 建一个空白WEB项目, 然后引用解压出来的 MySql.Data.dll, 添加一个 test.aspx 文件
test.aspx.vb 文件代码如下:
Imports System.Data
Imports System.Data.Common
Imports MySql.Data.MySqlClient
Partial Class test
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim connection As MySqlConnection
connection = New MySqlConnection("Server=localhost;Database=webanalytics;Uid=root;Pwd=;CharSet=utf8;")
connection.Open()
doTest(New MySqlCommand("select AutoId as `2自动编号4` from Site", connection))
doTest(New MySqlCommand("select `Id` as `desc描述222` from Site;", connection))
doTest(New MySqlCommand("select `Domain` as `3域名2domain` from Site;", connection))
doTest(New MySqlCommand("select `Explain` as `desc描述` from Site;", connection))
connection.Close()
connection.Dispose()
End Sub
Private Sub doTest(ByVal cmd As DbCommand)
Dim reader As DbDataReader = cmd.ExecuteReader()
response.Write("<h3>" & reader.GetName(0) & "</h3>")
While reader.Read
response.Write("<p>" & reader.GetValue(0))
End While
reader.Close()
cmd.Dispose()
End Sub
End Class
在浏览器中查看结果如下:
注:最后一条数据在数据库中就是乱码
经反复测试, 发现问题出现在 DbDataReader, 如果只使用DbDataReader.GetName()获取字段的别名将不会现现乱码, 当读取了数据时, 并且最后一次读取的是非字符串类型, 那么下次(没有关闭连接对象)再次使用DbDataReader读取字段别名时会出现乱码(当然别名得是中文).
这样有以下方案可以解决.
1. 每次使用完 DbDataReader 后关闭连接, 再重新打开;
2. DbDataReader读取完数据之后, 再读一个字符串的字段;
相关文章推荐
- MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- CenOS下mysql5.6修改字符编码,解决sql语句中带有中文,会乱码问题
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
- Mysql中文乱码以及导出为sql语句和Excel问题解决
- jdbc 链接mysql执行sql语句出现中文乱码问题
- Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- hibernate的sql语句中传中文参数乱码问题
- mysql执行sql中文乱码问题
- SQL Manager for Mysql 查询中文乱码问题
- MySQL 字符集导致SQL连接之后中文乱码的问题!
- mysql导入建表sql时中文注释的乱码问题
- mysql select 语句出现中文乱码问题
- 解决pl/sql devloper 中数据库操作语句中文乱码的问题
- Mysql数据库执行sql语句的中文乱码问题
- DbVisualizer工具sql语句中存在中文乱码的问题
- 代码中执行sql语句访问mysql,无法匹配中文字符的问题
- 关于mysql里面写sql语句,或者直接在表里写汉字,都是乱码问题解决