字符集-vs2008做的窗体程序查询oracle数据库数据,中文数据显示乱码

问题描述

vs2008做的窗体程序查询oracle数据库数据,中文数据显示乱码

公司的服务器字符集是英文的,然后我在电脑上装了oracle和plsql,修改了oracle下的注册表字符集都为英文的。我在plsql中查询的中文数据都可以正常显示,我在里面添加的中文数据也可以正常显示。但是,我在vs2008中做了一个查询,将查询出来的数据绑定到datagridview控件上,就出现了中文数据显示乱码,还有就是我自己在vs2008中添加新数据,在plsql中看到的数据中中文都显示为???
跪求高手帮帮忙。。。

解决方案

参考一下这个

在客户端正确显示ORACLE数据库汉字信息,首先必须使服务器端的字符集与客户端的字符集一致;其次是加载到ORACLE数据库的数据字符集必须与服务器指定字符集一致。
如果数据库设置不修改是很难办到的
http://www.eygle.com/special/NLS_CHARACTER_SET_01.htm
http://www.eygle.com/special/NLS_CHARACTER_SET_06.htm
http://www2.ccw.com.cn/tips/9906/062804_04.asp
追问:
oracle服务器端的配置我的确不能动,但是我查过了服务器用的字符集是WE8ISO8859P1,只修改我的程序可不可以实现,我再次说明我用sqlplus和pl/sql读取出来的汉字数据都是正确的!
回答:
改变连接字符串,用orcale的链接字符串。在web.config里面

然后用oledb来取得链接
'''
''' ==打开oracle数据库,返回一个OleDb.OleDbConnection==
'''
Private Function Orcale() As OleDb.OleDbConnection
Dim connstr As String
Dim dbcon As New OleDb.OleDbConnection
connstr = WebConfigurationManager.ConnectionStrings("orac1").ConnectionString
With dbcon
.ConnectionString = connstr
.Open()
End With
Return dbcon
End Function
然后取得结果。
我这是VB.NET的代码,你自己转C#吧。我用这从orcale取得数据不是乱码(我本机装的orcale的客户端组件。orcale版本是9)。
追问:
我是用的Winform,做的是应用程序,不是网站,没有web.config这个文件啊!
回答:
哦。那你用
string connstr="Provider=MSDAORA.1;Data Source=数据库;Persist Security Info=False;User ID=用户名;Password=密码;Unicode=True;pooling = true“;
OleDbConnection dbcon=New OleDbConnection;
dbcon.ConnectionString =connstr;
dbcon.Open();
这样连接看看。其实最主要的就是上面的Unicode=True,这样用unicode返回结果。C#默认也是unicode的,这样应该就不会乱码了。
具体下面通过oledb返回结果我就不写了。你先试试看。
追问:
谢谢,用你的方法问题已经解决了,但是我还是在想如果用oracleclient空间中的oracleconnection、oraclecommand、oracledadaadapter是不是也可以读取出来汉字啊!呵呵,不好意思,还能再说说吗?
回答:
其实主要就是那个字符集。不知道你服务器上怎么设置的,如果没设置好像就是unicode字符集
而你本机用的是简体中文的gb2312,所以读取是乱码。而plsql这些工具会自动根据服务器上的设置来设置本地的显示字符集 所以你看的不是乱码。

解决方案二:

链接

http://wenwen.sogou.com/z/q176355592.htm

时间: 2024-10-23 13:45:55

字符集-vs2008做的窗体程序查询oracle数据库数据,中文数据显示乱码的相关文章

odbc-我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码

问题描述 我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码 我用sql server 2008 通过ODBC 连接了sybase 后 查询出的数据中文是乱码 解决方案 http://blog.sina.com.cn/s/blog_48e42dc90100i6ch.html 解决方案二: http://www.2cto.com/database/201203/122530.html

缓存 数据库 java-java查询oracle数据库问题(菜鸟问题)

问题描述 java查询oracle数据库问题(菜鸟问题) 我从oracle数据库查一张表比如A,大约有1000w条数据,我需要经常用到这张表的一个字段(字段1)做比较查询,所以想把它放到缓存里.我用的是tomcat 我在java查询时直接把查询了这张表A,select 字段1 from A,然后就想直接放到list加入缓存中,但是使用时报错,Java heap space.查询后说是堆栈的问题,我按照网上的方法在tomcat的catalina.bat 文件里加入 set JAVA_OPTS=-X

java 查询oracle数据库所有表DatabaseMetaData的用法(详解)_java

一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法 原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type

sql-各位大神,oracle查询当前数据库数据有多少兆?

问题描述 各位大神,oracle查询当前数据库数据有多少兆? 我想查一下当前数据库的所有表里面的数据总共有多少兆,请问有这个SQL吗? 解决方案 --查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOT

关于ORACLE数据库中汉字显示乱码

  1 引言 ORACLE数据库作为业界领先的数据库产品,近年来在国内大中型企业中得到了广泛的应用.虽然ORACLE数据库产品本身在本地化方面已做得相当成熟,但还是有不少用户反应汉字显示乱码的问题.如对同一数据库不同的用户对同一表中的username查询却得出了不同的结果: "ORACLE??????"和"ORACLE中国有限公司",显然结果中将中文字符显示为乱码,那么为什么呢?字符集的设置不当是影响ORACLE数据库汉字显示的关键问题. 2 关于字符集 字符集是O

Oracle数据库数据对象分析(上)

oracle|对象|数据|数据库 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径. 表和视图 Oracle中表是数据存储的基本结构.ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大.视图是一个或多个表中数据的逻辑表达式.本文我们将讨论怎样创建和管理简单的表和视图. 管理表 表可以看作有行和列的电子数据表,表是关

asp.net 向 Oracle 添加数据 中文乱码

问题描述 asp.net 向 Oracle 添加数据 中文乱码 问题:asp.net 向oracle 插入中文乱码 oracle 字符集 AMERICAN_AMERICA.US7ASCII 而oracle的字符集是不可更改的.那么在程序如何处理? 解决方案 出现乱码的原因无非也就那么几个,要么代码的编码和数据库的不统一,要么从数据库获取数据的时候采取的编码出错,要么就是界面展示数据的时候出错了!不妨从这几个方面着手进行修改,希望对你有用 解决方案二: 搜到两个看起来靠谱的方法 1. 以上的大伙们

utf-8-【求助】数据库数据中文,plsql查询到的数据也是中文,页面显示问号,

问题描述 [求助]数据库数据中文,plsql查询到的数据也是中文,页面显示问号, 数据库是oracle11g,字符集是AL32UTF8, 我用plsql查询到的数据显示的是中文,但是在MyEclipse的控制台打印的就是问号?????jsp页面上显示查询到的中文数据也是显示问号????? 求解答,跪求说的详细点,别说个编码问题就走 解决方案 Oracle数据库导入后,表中的数据中文显示正常,包中的中文全为问号 解决方案二: 乱码呗,代码跟踪一下,看看是在什么地方开始乱码的,然后在针对处理. 解决

oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码

问题描述 oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码 oracle 11g impdp导入表数据中文不乱码,字段注释中文乱码,原数据库字符编码AMERICAN_AMERICA.AL32UTF8,目标数据库字符编码AMERICAN_AMERICA.UTF8,百度的方法更改客户端字符集各种情况均已尝试,均以失败告终,望各路达人指导! 解决方案 Oracle 11g OME 中文按钮乱码ORACLE 11G中PLSQL中文显示乱码.Linux下sqlplus查询中文乱码or