OracleDataAdapter da = new OracleDataAdapter(sql, m_SqlConnection);
  da.Fill(ds);
  return ds;
如果上边的 参数 sql中含有中文的话,返回结果ds为空,
这个情况原来是没问题的,但是后来更换了一下服务器,就出现上边的问题了。
数据库为oracle  11g
IIS发布的一个webservice程序,操作的是oracle数据

解决方案 »

  1.   

    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]就为空,英文没问题;
    还有就是,我原来的服务器没问题,挪了一次服务器,就出现这个问题了
      

  2.   

    把sql语句拿到ORACLE数据库去执行一下,看报什么错.
      

  3.   

    我试过了,aa(string  str)方法调用时,中文不是乱码,就是在调用ExecuteDataSet是参数为中文,就检索不到结果
      

  4.   

    把sql单独拿出来放到oracle执行,不报错,没问题,可以执行。
    关键是原来还可以来这,后来换了个服务器 ,就不行了
      

  5.   

    有数据啊,在我本机测试也是没问题的,原来服务器也没问题,关键是现在放到另外一个服务器,就出现这个问题了,跟oracle客户端有关系吗,跟.netframework有关系吗?
      

  6.   

    连接现在的oracle数据库,把SQL语句拿到查询分析器里面去执行一下,看有没有数据.
    不是说本地和原来的服务器.
      

  7.   

    问题解决了,但是不太清楚是在哪一步解决好的,首先我安装了oracle服务器端数据库,然后,我又配置了instant client  ,服务器是64位,我先配置的64为instantclient、不行,后来换做32位的instant client就可以了,大家分析一下,是哪步解决的问题呢,为什么呢?