C#/Java 程序执行MySqL 中文条件查询语句查询异常
2014-07-16 08:54
316 查看
昨天一同事问关于MySqL数据库 执行中文条件查询语句时正常,但在C#程序中却查不出结果,以前写过个网站,曾处理过改问题,过久映像模糊了,好奇故研究了下
比如:select [PID] from [PROJECT] where [PNAME]='工程1';该语句在SQL里是可以正常查询的,程序中也查得出结果,他程序里已把该SQL语句转成MYSQL格式,无误,怪就在程序执行时却查不到结果,查阅了一些资料,
怀疑是 my.ini 配置中要修改 default-character-set=gbk ,win下的是my.ini,一般会在安装目录的根目录,后来证实修改成gbk ,是解决MysQL数据库插入中文字段问题,
对程序执行中文条件查询还是没帮助,后来想到之前有设置过数据库连接信息,添加GBK机制,解决MYsqL不识别中文问题,放在出现乱码,可行 ,设置如下,
connection = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GBK" );
故认为SQl 自动有对中文兼容机制,连接不用添加GBK等编码机制,但MySQL,要添加才能识别,故程序创建数据库连接要声明到位,同样Java查询也要定义好中文编码问题,拙语见识总结不到位,忘见谅
比如:select [PID] from [PROJECT] where [PNAME]='工程1';该语句在SQL里是可以正常查询的,程序中也查得出结果,他程序里已把该SQL语句转成MYSQL格式,无误,怪就在程序执行时却查不到结果,查阅了一些资料,
怀疑是 my.ini 配置中要修改 default-character-set=gbk ,win下的是my.ini,一般会在安装目录的根目录,后来证实修改成gbk ,是解决MysQL数据库插入中文字段问题,
对程序执行中文条件查询还是没帮助,后来想到之前有设置过数据库连接信息,添加GBK机制,解决MYsqL不识别中文问题,放在出现乱码,可行 ,设置如下,
connection = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GBK" );
故认为SQl 自动有对中文兼容机制,连接不用添加GBK等编码机制,但MySQL,要添加才能识别,故程序创建数据库连接要声明到位,同样Java查询也要定义好中文编码问题,拙语见识总结不到位,忘见谅
相关文章推荐
- java加mysql按时间条件查询sql语句
- java中使用mysql查询 条件中含有中文时查询不到结果解决方案
- java中使用mysql查询 条件中含有中文时查询不到结果解决方案
- java加mysql按时间条件查询sql语句
- java servlet执行多条MySQL查询语句
- 记录:java执行mysql语句查询字段类型:timestamp返回页面显示会多出个 .0,自己如何处理的
- MySql使用全记录3 -----以中文作为查询条件时结果为空的原因以及两个MySql小知识点(varchar、单双引号)
- Java异常处理中,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
- 使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space
- 写了一个查询数据库的程序,不熟的Tomcat6。查询条件为英文时运行正常,为中文时出现乱码。后在tomcap的server.xml中加入useBodyEncodingForURI="true解决了问题
- C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 (续集Tomcat 配置)
- Haskell、C#、Java、C 程序执行效率比较 :Write your first parallel Haskell program
- 如何用C#程序直接执行.sql文件里的SQL语句
- JAVA连接MYSQL,查询 ,添加,删除,语句
- C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装
- mysql查找语句中包含中文字符时查询失效的问题及解决方法
- 水晶报表问题汇总(水晶报表的使用与查询条件生成报表、注册码、打印问题、模式使用示例、C#.Net的WinForm中的使用、程序发布与部署)
- mysql 数据库字段为datetime类型时默认值为:0000-00-00 00:00:00 查询时异常 java.sql.SQLException:Value '0000-00-00' can not be represented as java.sq
- MYSQL 字符编码不对导致查询语句含有中文就出错的解决办法
- MySQL IFNULL中可以有select语句;查询一个表中的数据,同时查看另一个表中是否有符合条件的额数据