C#处理读取使用US7ASCII的oracle数据库中文显示乱码问题
方式一:(推荐)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数据库中文显示乱码问题相关推荐
- linux连接oracle数据库中文显示乱码
问题背景: orclae服务的原本就是有也使用正常,win下的pl/sql developer客户端能正常访问且,中文字段也显示正常.unix的aix服务器访问oracle用occi和sqlplus也 ...
- python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案
python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 参考文章: (1)python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案 (2)https:// ...
- DbVisualizer Pro 9.1.1连DB2数据库中文显示乱码的解决【一篇就够】
一.修改安装目录下配置文件 安装目录/resources/dbvis-custom.prefs 增加配置如下: dbvis.grid.encode=true dbvis.grid.fromEncode ...
- Linux下 Oracle SQLPlus 中文显示乱码处理
错误重现: [oracle@oracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Tue ...
- python读取oracle数据库中文乱码_PL/SQL连接Oracle数据库,中文乱码,显示问号
PL/SQL连接oracle数据库 1.简单介绍 在不安装oracle数据库的情况下使用pl/sql连接远程oracle数据库. 2.详细步骤: a) 安装PL/SQL.依据自己的操作系统安 ...
- 解决SQL适配器连接到字符集为US7ASCII的Oracle数据库的中文乱码问题
在使用xDBC连接到字符集为US7ASCII的Oracle数据库时,大家可能遇到过中文的乱码问题,尤其是使用Oracle自己的xDBC驱动的时候. 字符集为US7ASCII的Oracle数据库虽然可以 ...
- Oracle数据库中文乱码问题解决
Oracle数据库中文乱码问题解决 参考文章: (1)Oracle数据库中文乱码问题解决 (2)https://www.cnblogs.com/ws0316/p/11876056.html 备忘一下.
- linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决
在Windows下sqlplus完全正常,可是到Linux下,sqlplus中文显示就出问题了,总是显示ldquo;??rdquo;,这个问题又怎么解决呢?经 在Windows下sqlplus完全正常 ...
- 解决Oracle表中数据中文显示乱码问题
问题描述 PLSQL中文显示乱码,可能是oracle客户端和服务器端的编码方式不一样. 查询ORACLE服务器的语言.地域和字符集: SQL> select * from nls_databas ...
最新文章
- 用python编写脚本实现备份文件
- Java 文件操作 File 及 RandomAccessFile
- NOIP模拟测试22「位运算」
- 【四】Java流程控制
- 车牌识别EasyPR(5)——文字定位
- 数据类型的基本表达式
- PHP中的Array类型其实是Hashtable
- 解析文本文件 r 与 rb 模式的区别(Python)
- 【组合数学】递推方程 ( 有重根下递推方程通解结构 | 线性无关解 | 有重根下的通解 | 有重根下的递推方程求解示例 | 递推方程公式解法总结 ) ★
- 回文字符串判断python实现
- 新版网易云课堂视频真实地址分析
- MyBatisplus字段名与表名的映射
- 集群通信:从心跳说起
- form表单提交到controller时出现404的尴尬问题(或链接不到.action、链接不到.do跳404的问题)
- python里offset啥意思_深度理解Jquery 中 offset() 方法
- python为什么叫胶水语言 举例_python为什么叫胶水语言 python为什么是系统脚本
- LC串联震荡电路谐振频率
- web-worker的学习
- Linux系统ISO镜像文件下载地址
- 2020FME博客大赛——基于FME的天地图·浙江融合数据质检程序的设计与应用