当前位置:编程学习 > C#/ASP.NET >>

OracleDataAdapter,参数中sql为中文的话,查询结果为空

  OracleDataAdapter da = new OracleDataAdapter(sql, m_SqlConnection);
  da.Fill(ds);
  return ds;
如果上边的 参数 sql中含有中文的话,返回结果ds为空,
这个情况原来是没问题的,但是后来更换了一下服务器,就出现上边的问题了。
数据库为oracle  11g
IIS发布的一个webservice程序,操作的是oracle数据 --------------------编程问答-------------------- 考虑下是否是编码的问题,乱码了查询会出现这种 --------------------编程问答-------------------- public string aa(string str)
{
DataSet dsDonationId = new DataSet();
dsDonationId = ExecuteDataSet("select DONID from CADONATION where DONNAME='" + str + "'");
return  dsDonationId.Tables[0].Rows[0][0].ToString();
}
这个方法中executeDataSet调用了
OracleDataAdapter da = new OracleDataAdapter(sql, m_SqlConnection);
  da.Fill(ds);
  return ds;
,现在是,如果aa的参数中存在中文,下边的dsDonationId.Tables[0].Rows[0][0]就为空,英文没问题;
还有就是,我原来的服务器没问题,挪了一次服务器,就出现这个问题了
--------------------编程问答-------------------- 把sql语句拿到ORACLE数据库去执行一下,看报什么错. --------------------编程问答-------------------- 我试过了,aa(string  str)方法调用时,中文不是乱码,就是在调用ExecuteDataSet是参数为中文,就检索不到结果 --------------------编程问答-------------------- 把sql单独拿出来放到oracle执行,不报错,没问题,可以执行。
关键是原来还可以来这,后来换了个服务器 ,就不行了 --------------------编程问答--------------------
引用 5 楼 aa200100 的回复:
把sql单独拿出来放到oracle执行,不报错,没问题,可以执行。
关键是原来还可以来这,后来换了个服务器 ,就不行了


有数据吗? --------------------编程问答-------------------- 有数据啊,在我本机测试也是没问题的,原来服务器也没问题,关键是现在放到另外一个服务器,就出现这个问题了,跟oracle客户端有关系吗,跟.netframework有关系吗? --------------------编程问答-------------------- 连接现在的oracle数据库,把SQL语句拿到查询分析器里面去执行一下,看有没有数据.
不是说本地和原来的服务器. --------------------编程问答--------------------
引用 8 楼 yyantifa 的回复:
连接现在的oracle数据库,把SQL语句拿到查询分析器里面去执行一下,看有没有数据.
不是说本地和原来的服务器.

我本地,原来的服务器,现在的有问题的服务器,使用的是同一个数据库 --------------------编程问答-------------------- 问题解决了,但是不太清楚是在哪一步解决好的,首先我安装了oracle服务器端数据库,然后,我又配置了instant client  ,服务器是64位,我先配置的64为instantclient、不行,后来换做32位的instant client就可以了,大家分析一下,是哪步解决的问题呢,为什么呢?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,