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、端口、用户名、密码之后运行测试效果。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步