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");需要注意的是: 第二、三种利用函数进行设置环境变量的操作必须在数据库操作的外边才能生效。 c# 删除 form窗体 关于C#调用fortran的dll,奇怪的问题 指定tcpclient 占用的端口 问一个很弱的关于WinForm中事件的问题 请问如何在datagridview里,一行结束后,按下tab自动跳到下一行的第二个cell??? 一个关于web browser的简单问题 今天圣诞了,节日快乐咯,散点分,顺路问个小问题!!! 很简单的函数调用问题啊 把密码存进DLL文件安全吗?C#又怎样存取密码? 数据类型错误 ????HELP?? 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");需要注意的是: 第二、三种利用函数进行设置环境变量的操作必须在数据库操作的外边才能生效。