C#连接远程oracles数据库 中文做条件查询不到数据

夜_麒麟 2017-07-02 05:56:32
客户端环境 windows7 32
本机注册表字符集
AMERICAN_AMERICA.US7ASCII
客户端 环境变量字符集 AMERICAN_AMERICA.US7ASCII

远程oracle 服务端 通过本地plsql 查询出 字符集为AMERICAN_AMERICA.US7ASCII


那么问题来了 本机通过PLSQL 连接远程数据库 查询如:
select * from temp where name='中国' 是可以查询到数据的
通过C# 程序就查询不到数据了
下面附上 代码

string conn = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器地址)(PORT=1521)))(CONNECT_DATA=(SID=ORCL)(SERVER=DEDICATED)));User Id=oracle;Password=oracle;Persist Security Info=True;Unicode=True;";
string sql =string.Format("select * from temp where name='中国' ");
using (OleDbDataAdapter da = new OleDbDataAdapter(SQL, conn))
{

try
{
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
catch (OleDbException exp)
{

da.Dispose();
throw new Exception(exp.Message);
}
}
...全文
874 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxq129601 2017-07-05
  • 打赏
  • 举报
回复
temp 这个表是临时表还是实体表
  • 打赏
  • 举报
回复
引用 楼主 u010786338 的回复:
客户端环境 windows7 32 本机注册表字符集 AMERICAN_AMERICA.US7ASCII 客户端 环境变量字符集 AMERICAN_AMERICA.US7ASCII 远程oracle 服务端 通过本地plsql 查询出 字符集为AMERICAN_AMERICA.US7ASCII 那么问题来了 本机通过PLSQL 连接远程数据库 查询如: select * from temp where name='中国' 是可以查询到数据的 通过C# 程序就查询不到数据了 下面附上 代码 string conn = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器地址)(PORT=1521)))(CONNECT_DATA=(SID=ORCL)(SERVER=DEDICATED)));User Id=oracle;Password=oracle;Persist Security Info=True;Unicode=True;"; string sql =string.Format("select * from temp where name='中国' "); using (OleDbDataAdapter da = new OleDbDataAdapter(SQL, conn)) { try { DataSet ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; } catch (OleDbException exp) { da.Dispose(); throw new Exception(exp.Message); } }
链接字符串有问题吧
夜_麒麟 2017-07-03
  • 打赏
  • 举报
回复
必须是一个库 因为我只有这么一个库的权限
夜_麒麟 2017-07-03
  • 打赏
  • 举报
回复
是一个库的 我用编号就可以查到那条数据用汉字就查询不到 还有你说的 字符集 目前都已经一样 我查询的数据也可以正常显示 但是用中文做条件就不可以 代码插曲oracle库汉字会是?号 数字就没有问题
夜_麒麟 2017-07-03
  • 打赏
  • 举报
回复
引用 11 楼 wzf_soft 的回复:
string sql =string.Format("select * from temp where name='中国' "); -//变量 sql 小写 using (OleDbDataAdapter da = new OleDbDataAdapter(SQL, conn)) //SQL 大写 这样没有报错??
重点不在这个 重点是 查不到数据 sql 语句是我后粘的 原本应该是sql 不报错的
jdsnhan 2017-07-03
  • 打赏
  • 举报
回复
谁知道你连接的库是不是一个啊。 搞个测试, 你把temp中的内容改一下,把中国改成china,然后在plsql和 程序中分别访问。 如果两处都能访问到,那说明字符集是有问题的,重点找字符集的问题。 如果c#程序还没有数据,那或许访问的不是一个库,或许还有其他的问题
wzf_soft 2017-07-03
  • 打赏
  • 举报
回复
string sql =string.Format("select * from temp where name='中国' "); -//变量 sql 小写 using (OleDbDataAdapter da = new OleDbDataAdapter(SQL, conn)) //SQL 大写 这样没有报错??
qq_34745427 2017-07-03
  • 打赏
  • 举报
回复
上面都做了之后还不行,那就在看看服务器上有的服务端是多少位的,在看本地服务端是多少位的,不同的话先发布到iis中,看在iis中是否能正常运行
qq_34745427 2017-07-03
  • 打赏
  • 举报
回复
先第一不看在本地net manager中有没有要连接的服务,点中此服务先测试一下,没有的话先创建一个服务把,没有测试通过说明监听没开,或者根本链接不上就要找其他问题了。通过后在通过plsql看是否能连接,能连接后看c#连接字符串<add name="OraConnString" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ip)(PORT=端口)))(CONNECT_DATA=(SERVER=服务)(SERVICE_NAME=服务名)));User Id=用户登录名;Password=用户密码;"/>
qq_34745427 2017-07-03
  • 打赏
  • 举报
回复
我感觉好解决
夜_麒麟 2017-07-03
  • 打赏
  • 举报
回复
顶帖啊
夜_麒麟 2017-07-02
  • 打赏
  • 举报
回复
急急急 在线坐等
夜_麒麟 2017-07-02
  • 打赏
  • 举报
回复
自顶一贴 oracleclinet 已经重装 选在字符集也是US7ASCII Oracle - OraHome92 Oracle Installation Products
夜_麒麟 2017-07-02
  • 打赏
  • 举报
回复
快来大神感觉并不是单单字符集的问题
内容概要:本文针对基于输入并联输出串联(IPOS)结构的双三相LLC谐振变换器,系统研究其在宽增益工况下的谐振参数优化方法与启动过程中冲击电流的抑制策略。通过Simulink平台构建系统仿真模型,结合变频控制与电压电流双闭环调控策略,深入分析变换器在全范围软开关条件下的工作边界、模式切换动态响应及多模式运行稳定性。研究提出优化谐振腔参数设计以扩展电压增益范围,并引入降频软启动、星形耦合自均流等机制有效抑制上电瞬间的电流冲击,提升系统启动可靠性与运行效率。同时探讨了变频调压、多模式切换控制及交错并联带来的均流优势,为高增益、大功率密度DC-DC变换器的设计提供了完整的建模、控制与优化解决方案; 适合人群:具备电力电子与电力系统基础知识,从事新能源变换器、高频开关电源、电动汽车充电系统、航空航天电源等相关领域研究的研究生、科研人员及工程技术人员; 使用场景及目标:①为高电压增益、高效率、高功率密度DC-DC变换器的谐振参数设计与控制策略制定提供理论依据与仿真验证手段;②指导LLC谐振变换器在新能源并网、车载充电机、直流微网等应用场景中的工程实现与性能优化;③支撑高水平学术论文(如IEEE期刊)的复现、科研项目关键技术攻关及系统级仿真平台搭建; 阅读建议:建议结合Simulink仿真实例,细致理解谐振参数设计准则、软开关实现条件、冲击电流形成机理及其抑制方法的有效性验证过程,重点关注模式切换过程中的动态响应特性与闭环控制参数整定规律,宜配合相关文献进行对比分析以深化对系统稳定性和控制策略优越性的认知。
内容概要:本文详细介绍了使用CAXA3D软件进行支座类零件三维建模的全过程,采用“草图拉伸构建基体→添加凸台→加强筋→切除凹槽与安装孔”的建模思路。通过分步操作讲解,涵盖从创建底座草图、拉伸成实体、添加长方体凸台、使用加强肋图素增强结构强度,到利用孔类图素完成顶部矩形凹槽和中部弧形槽口的切除,最后通过布尔合并形成完整零件。文中还列出了关键尺寸参数,并针对常见建模问题提供了具体解决方案,如长圆孔未切除、加强肋无法生成、孔类图素不减料及零件未合并等问题的原因分析与处理方法。; 适合人群:具备基本三维建模基础,从事机械设计、产品结构设计等相关工作的工程师或工科专业学生;尤其适合正在学习CAXA3D软件操作的初学者; 使用场景及目标:①掌握CAXA3D中基于草图拉伸与图素库组合的高效建模流程;②理解加强肋、孔类图素等智能图素的正确使用方式;③学会解决建模过程中常见的草图封闭性、实体吸附与布尔运算问题;④为后续工程图出图和实际零件设计打下基础; 阅读建议:建议读者结合CAXA3D软件同步实操,按照文档步骤逐步练习,重点关注草图封闭性、图素吸附机制和最终布尔合并的操作细节,以提升建模成功率与效率。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧