方式一:(推荐)Oracle Data Access Components (ODAC) +OleDbConnection

该方式无需配置环境变量

1.下载ODAC 组件,地址为https://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

2.解压缩文件包,并安装组件,选择Oracle Client 即可

3.修改安装目录 C:\app\Administrator\product\11.2.0\client_1\Network\Admin(安装目录根据前面的安装可以有所不同) 下的 tnsnames.ora 文件。

4.编写访问数据库的C#代码(OleDb驱动)。使用连接字符串1,可以省略步骤3的文件配置。

private static void Method1()
        {
            //连接字符串方式1:
            //string connString = "Provider=OraOLEDB.Oracle.1;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 1521)))(CONNECT_DATA = (SID = orcl))) ;User Id=test;Password=123456";
            //连接字符串方式2:
            string connString = "Provider=OraOLEDB.Oracle.1;Data Source=orcl;User Id=test;Password=123456";
            using (OleDbConnection conn = new OleDbConnection(connString))
            {
                try
                {
                    conn.Open();
                    Console.WriteLine("连接成功!");
                    string sql = "select * from student";
                    OleDbCommand com = new OleDbCommand(sql, conn);
                    OleDbDataReader read = com.ExecuteReader();

while (read.Read())
                    {
                        String name = read["name"].ToString();
                        Console.WriteLine("name:{0}", name);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("连接失败!" + ex.Message);
                }
                finally
                {
                    if (conn != null)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }
            }
        }

方式二:Oracle Data Access Components (ODAC) +OracleConnection

步骤1,2,3同方式一。

4.编写访问数据库的C#代码,由于System.Data.OracleClient.OracleConnection已经过时,所以引用Oracle.DataAccess.dll,并添加using Oracle.DataAccess.Client;

private static void Method2()
        {
            string connString = "User ID=test;Password=123456;Data Source=orcl";
            using (OracleConnection conn = new OracleConnection(connString))
            {
                try
                {
                    conn.Open();
                    Console.WriteLine("连接成功!");
                    string sql = "select * from student";
                    OracleCommand com = new OracleCommand(sql, conn);
                    OracleDataReader read = com.ExecuteReader();

while (read.Read())
                    {
                        String name = read["name"].ToString();
                        Console.WriteLine("name:{0}", name);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("连接失败!" + ex.Message);
                }
                finally
                {
                    if (conn != null)
                    {
                        conn.Close();
                        conn.Dispose();
                    }
                }
            }
        }

5.配置环境变量(必要)

NLS_LANG

SIMPLIFIED CHINESE_CHINA.US7ASCII

方式三:Oracle Client +OleDbConnection

1.下载OracleClient客户端,https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

2.安装客户端,注意选择安装类型为管理员或者运行时,保证程序能引用OLEDB组件。

3.编写代码同方式一的Method1

4.配置环境变量同方式二步骤5

方式四:Oracle Client + OracleConnection

1.下载OracleClient客户端,https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

2.安装客户端,安装类型选择InstantClient即可

3.编写代码同方式二的Method2

4.配置环境变量同方式二步骤5

总结:ODAC+OleDbConnection可以不配置环境变量字符集,为推荐方式。其他方式需配置环境变量字符集。

C#处理读取使用US7ASCII的oracle数据库中文显示乱码问题相关推荐

  1. linux连接oracle数据库中文显示乱码

    问题背景: orclae服务的原本就是有也使用正常,win下的pl/sql developer客户端能正常访问且,中文字段也显示正常.unix的aix服务器访问oracle用occi和sqlplus也 ...

  2. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案

    python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 参考文章: (1)python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 (2)https:// ...

  3. DbVisualizer Pro 9.1.1连DB2数据库中文显示乱码的解决【一篇就够】

    一.修改安装目录下配置文件 安装目录/resources/dbvis-custom.prefs 增加配置如下: dbvis.grid.encode=true dbvis.grid.fromEncode ...

  4. Linux下 Oracle SQLPlus 中文显示乱码处理

    错误重现: [oracle@oracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Tue ...

  5. python读取oracle数据库中文乱码_PL/SQL连接Oracle数据库,中文乱码,显示问号

    PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a)      安装PL/SQL.依据自己的操作系统安 ...

  6. 解决SQL适配器连接到字符集为US7ASCII的Oracle数据库的中文乱码问题

    在使用xDBC连接到字符集为US7ASCII的Oracle数据库时,大家可能遇到过中文的乱码问题,尤其是使用Oracle自己的xDBC驱动的时候. 字符集为US7ASCII的Oracle数据库虽然可以 ...

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

    Oracle数据库中文乱码问题解决 参考文章: (1)Oracle数据库中文乱码问题解决 (2)https://www.cnblogs.com/ws0316/p/11876056.html 备忘一下.

  8. linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决

    在Windows下sqlplus完全正常,可是到Linux下,sqlplus中文显示就出问题了,总是显示ldquo;??rdquo;,这个问题又怎么解决呢?经 在Windows下sqlplus完全正常 ...

  9. 解决Oracle表中数据中文显示乱码问题

    问题描述 PLSQL中文显示乱码,可能是oracle客户端和服务器端的编码方式不一样. 查询ORACLE服务器的语言.地域和字符集: SQL> select * from nls_databas ...

最新文章

  1. 用python编写脚本实现备份文件
  2. Java 文件操作 File 及 RandomAccessFile
  3. NOIP模拟测试22「位运算」
  4. 【四】Java流程控制
  5. 车牌识别EasyPR(5)——文字定位
  6. 数据类型的基本表达式
  7. PHP中的Array类型其实是Hashtable
  8. 解析文本文件 r 与 rb 模式的区别(Python)
  9. 【组合数学】递推方程 ( 有重根下递推方程通解结构 | 线性无关解 | 有重根下的通解 | 有重根下的递推方程求解示例 | 递推方程公式解法总结 ) ★
  10. 回文字符串判断python实现
  11. 新版网易云课堂视频真实地址分析
  12. MyBatisplus字段名与表名的映射
  13. 集群通信:从心跳说起
  14. form表单提交到controller时出现404的尴尬问题(或链接不到.action、链接不到.do跳404的问题)
  15. python里offset啥意思_深度理解Jquery 中 offset() 方法
  16. python为什么叫胶水语言 举例_python为什么叫胶水语言 python为什么是系统脚本
  17. LC串联震荡电路谐振频率
  18. web-worker的学习
  19. Linux系统ISO镜像文件下载地址
  20. 2020FME博客大赛——基于FME的天地图·浙江融合数据质检程序的设计与应用

热门文章

  1. 新概念英语第二册Lesson 79 By air
  2. Postman 使用之全局变量管理
  3. 对Excel表与数据库的操作
  4. android 最简单的饼状图
  5. 基于YOLOv4的交通视频监控车辆识别
  6. 箕舌线图像怎么画matlab,一种类箕舌线函数的变步长归一化自适应滤波算法
  7. 基于HASM模型的土壤高精度建模matlab仿真
  8. 良好的设计才能产出精品
  9. P1294 高手去散步
  10. 知名投资人大卫 · 考恩:量子计算值得我“豪赌”