C# 使用System.Data.OleDb;避免oracle中文乱码问题

首先,需要保证oracle客户端服务器的字符集是一样的,并且保证该字符集支持中文。你可以使用plsql查看是否乱码。

代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.OleDb;



namespace Oracle中文

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("开始连接oraclr数据库");



            string connstring = "Provider=MSDAORA.1;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.155)(PORT = 1521)))(CONNECT_DATA = (SID = edrsdb))) ;User Id=edrs_process;Password=scgsxxzx";



            OleDbConnection conn = new OleDbConnection(connstring);

            conn.Open();



            Console.WriteLine("oracle连接成功");

            Console.WriteLine("开始读取中文数据测试是否乱码");

            Console.WriteLine("读取软件版本管理-更新内容字段,其结果如下:");



            string cmd = "select GXNR from US_RJBBGL where ZJ = 'F6A4A7A7A851C8EEE040007F01004914'";

            OleDbCommand oleCmd = new OleDbCommand(cmd, conn);

            oleCmd.CommandType = System.Data.CommandType.Text;

            object oresult = oleCmd.ExecuteScalar();



            Console.WriteLine(oresult.ToString());



            Console.WriteLine("测试中文数据更改是否乱码");



            string updateCmd = "update US_RJBBGL set GXNR = '你好' where ZJ = 'F6A4A7A7A851C8EEE040007F01004914'";



            oleCmd.CommandText = updateCmd;

            oleCmd.ExecuteNonQuery();

            Console.WriteLine("数据更改已完成.");



            Console.Read();

        }

    }

}

  

修改链接字符串的IP、端口、用户名、密码之后运行测试效果。

你可能感兴趣的:(oracle)