最近公司有一个对外项目,采用的是oracle数据库,以前做的项目基本都是SQLserver,有和oracle对接的也就一些简单的增删查改。

还巧合的遇到乱码问题,网上各种查找,筛选,总算是把问题解决了。但是也不算完美,所以还想看看有没有大侠有没有更好的办法。

服务器编码为:AMERICAN_AMERICA.WE8ISO8859P1

首先HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1增加字符串值NLS_LANG 值:AMERICAN_AMERICA.WE8ISO8859P1

使用OracleClient读取是乱码,并且改注册表项、环境变量都没用。扑街。。。

使用ODP.NET,读取写入均是乱码,写入可以在执行之前对SQL语句进行重新编码解决,但是读取, 如果有几千行数据,每行几十个字段 , 一个一个转 ?   扑街。。。

最终使用的是OleDb,

连接字符串配置的Provider=oraoledb.oracle (网上有说写成 Provider = MSDAORA.1  这个貌似不太支持64位系统  直接连接不上数据库)

读取中文没啥问题,插入更新之前,把SQL语句重新编码一下就行

public string ToChString(string str)
{
System.Text.Encoding gbk_encoder = System.Text.Encoding.GetEncoding("gb2312");
byte[] bs = gbk_encoder.GetBytes(str);
char[] cs = new char[bs.Length];
for (int i = ; i < bs.Length; i++)
cs[i] = Convert.ToChar(bs[i]);
return new String(cs);
}

如果还有更好的办法麻烦大侠推荐下 ~

C#操作Oracle数据库中文乱码问题解决的更多相关文章

  1. cx_Oracle读取Oracle数据库中文乱码问题解决

    在使用cx_Oracle模块读取Oracle数据库中的中文记录时,返回值皆为?,后google得此佳文,遂问题得以解决,特此记之. Oracle数据库版本是10g,字符集是AL32UTF8. 编写的p ...

  2. DOS命令行操作MySQL数据库中文乱码问题解决

    我们在 dos 命令行操作中文时,会报错 ’); ERROR (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 原因:因为 ...

  3. Oracle数据库中文乱码问题解决

    1.查看服务器端编码select userenv('language') from dual;我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK 2.执行语句 select * f ...

  4. Oracle数据库中文乱码问题

    最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle ...

  5. PL/sql developer连接数据库的问题以及oracle数据库中文乱码的问题

    今天第二次配置PL/sql developer,表示很蛋疼,昨天因为动了一个东西然后莫名其妙的就再也连接不了数据库,总是显示各种错误,我动的东西是因为中文会显示乱码,(因为我是用32位的PL/sql ...

  6. plsqldev、oracle插入中文乱码问题解决

    最近在开发项目时用到Oracle数据库,需要手动插入一些数据,但插入中文的sql值时出现了乱码. 中文乱码就是编码不统一所导致的了,解决办法只需要把编码统一下即可解决了. 此种情况最大的可能就是客户端 ...

  7. Oracle数据库数据显示乱码问题解决方法。

    一.问题描述:       在将其它数据库的数据导出文件导入本地新建数据库时,所导入的数据全部是乱码,一般表现为数据表中列的值类似于"?????",即内容大部分为?的表现形式.初步 ...

  8. Java web后台插入数据库中文乱码问题解决

    前言:项目想要避免乱码情况的出现,要保持服务器.数据库.项目.以及前端编码一致.一.项目以及前端编码,设置. myeclipse--->右键项目--->Properties--->R ...

  9. springMVC保存数据到mysql数据库中文乱码问题解决方法

    1.web.xml中添加过滤器 <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi ...

随机推荐

  1. 如何设置div自适应高度

    1.给div添加overflow属性 .div{ width:760px; overflow:hidden; } 2.其他的设置height:auto 等我测试没有效果

  2. phpcms 电脑手机合并

    电脑手机端 ========================== <script type="text/javascript"> function browserRed ...

  3. 邓_ SVN·最新使用教程总结

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  4. firebird的递归查询

    with RECURSIVE cte as ( select a.* from PM_PROJECT a where a.pm_id='root_id' union all select k.* fr ...

  5. confluence中设置应用程序链接到jira

    有时需要在confluence中选中文本直接生成issue或story到jira里. 在"一般配置“->“应用程序链接”中创建即可.

  6. 百度之星2014复赛 - 1001 - Find Numbers

    先上题目: Find Numbers Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  7. OSX: 安装打印机的有用命令行

    事实上非常easy.就是有用lpadmin命令,以下给出一个样例: printername="YOUR_PRINTER_NAME" location="LOCATION ...

  8. 继续过Hard题目

    接上一篇:http://www.cnblogs.com/charlesblc/p/6283064.html 继续过Hard模式的题目吧.   # Title Editorial Acceptance ...

  9. Java中的事务

    Java中的事务 学习了:https://www.cnblogs.com/chengpeng15/p/5802930.html 膜拜一下 org 分为三类:jdbc事务.jta事务.容器事务:

  10. Leetcode45:Intersection of Two Linked Lists

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...