c#中文数据插入到oracle中显示乱码 各位如何解决阿,在oracle中插入每问题,用c#操作就乱麻 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是代码 OracleConnection conn = new OracleConnection(); conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=v12)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User Id=system;Password=1234"; try { conn.Open(); OracleCommand cmd = conn.CreateCommand(); string sql = "insert into YANGFANGDATABASE(invest,name) values('看看','张三')" cmd.CommandText = sql; int num = cmd.ExecuteNonQuery(); if (num > 0) { MessageBox.Show("添加成功"); } else { MessageBox.Show("添加失败"); } } catch (Exception ee) { MessageBox.Show("错误"+ee.Message); } finally { conn.Close(); } 把字符该为unicode,应该不会乱 参考http://www.2cto.com/kf/201207/138980.html oracle客户端软件的字符编码与服务器端的字符编码不一致造成的。oracle服务端字符编码为: ZHS16GBKoracle客户端字符编码为: WE8ISO8859P1解决办法有三种:(1)修改客户端注册表: 找到Oracle安装注册项下的NLS_LANG,将其值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK(2)通过调用_putenv函数,在程序中用代码设置:using System.Runtime.InteropServices;...[DllImport("msvcrt.dll")]private static extern int _putenv(string str);..._putenv("NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK");//数据库操作_putenv("NLS_LANG = AMERICAN_AMRICA.WE8ISO8859P1");(3)通过C#自带的函数设置环境变量System.Environment.SetEnvironmentVarible("NLS_LANG "," SIMPLIFIED CHINESE_CHINA.ZHS16GBK");//数据库操作System.Environment.SetEnvironmentVarible("NLS_LANG ","AMERICAN_AMRICA.WE8ISO8859P1");需要注意的是: 第二、三种利用函数进行设置环境变量的操作必须在数据库操作的外边才能生效。 请教一个关于“未将对象引用设置到对象的实例”的问题 关于层float:right 求助:为什么VISUAL STUDIO .NET 2003装不了? GDI+ 中如何实现在特定背景(通过brush和pen建立的背景)下,通过pen产生的线条的移动? 在.net下怎么过滤敏感字 我有文字和图片在C#如何打印呢 如何处理.net中的消息接收超时 如何使某一菜单项不可用(变灰)? c#中怎么判断数据类型? 关于vs插件开发的文章 C# Panel AutoScroll 子控件显示问题 flashpaper2不能转换PDF文档到SWF格式吗?在线等....
conn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=v12)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User Id=system;Password=1234";
try
{
conn.Open();
OracleCommand cmd = conn.CreateCommand();
string sql = "insert into YANGFANGDATABASE(invest,name) values('看看','张三')"
cmd.CommandText = sql;
int num = cmd.ExecuteNonQuery();
if (num > 0)
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
}
catch (Exception ee)
{
MessageBox.Show("错误"+ee.Message);
}
finally
{
conn.Close();
}
http://www.2cto.com/kf/201207/138980.html
oracle客户端字符编码为: WE8ISO8859P1解决办法有三种:
(1)修改客户端注册表: 找到Oracle安装注册项下的NLS_LANG,将其值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(2)通过调用_putenv函数,在程序中用代码设置:
using System.Runtime.InteropServices;
...
[DllImport("msvcrt.dll")]
private static extern int _putenv(string str);
...
_putenv("NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK");
//数据库操作
_putenv("NLS_LANG = AMERICAN_AMRICA.WE8ISO8859P1");
(3)通过C#自带的函数设置环境变量
System.Environment.SetEnvironmentVarible("NLS_LANG "," SIMPLIFIED CHINESE_CHINA.ZHS16GBK");
//数据库操作
System.Environment.SetEnvironmentVarible("NLS_LANG ","AMERICAN_AMRICA.WE8ISO8859P1");需要注意的是: 第二、三种利用函数进行设置环境变量的操作必须在数据库操作的外边才能生效。