日期:2014-05-17  浏览次数:20450 次

数据库查询问题求教,Dataset 老是为空
查询数据,调试的时候把strSql复制到PL/sql里面可以查询到数据,但是查询运行一直显示无数据,遍历数据的时候直接跳出。不知道什么原因


OracleConnection conn = new OracleConnection("DATA SOURCE=192.168.1.213/gridmark;Persist Security Info=True;USER ID=WGYX;PassWord=wgyx");
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
String strSql = "select tell,name from user_base where name='" + username + "'";
cmd.CommandText = strSql;
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet(); 
    try
      {
          conn.Open();
          OracleDataAdapter ad = new OracleDataAdapter();
          ad.SelectCommand = cmd;
          ad.Fill(ds);
          foreach (DataRow dr in ds.Tables[0].Rows)
          {
             Longitudes[count] = System.Double.Parse(dr["lontitude"].ToString());
             longitude += Longitudes[count] + "|";//将读取的经纬度存储为字符串形式

              Latitudes[count] = System.Double.Parse(dr["latitude"].ToString());
              latitude += Latitudes[count] + "|";//将读取经纬度存储为字符串形式
              count = count + 1;
           }
      }

------最佳解决方案--------------------
你把跟踪出来的 sql拿到plsql中去执行看看,不要直接把代码里的复制过去,怀疑
String strSql = "select tell,name from user_base where name='" + username + "'"; 
这个有问题
------其他解决方案--------------------
如果SQL语句在数据库执行能查出数据,那么肯定就还是你本地编写的ADO.NET的访问有问题!
------其他解决方案--------------------
引用:
你把跟踪出来的 sql拿到plsql中去执行看看,不要直接把代码里的复制过去,怀疑
String strSql = "select tell,name from user_base where name='" + username + "'"; 
这个有问题
我就是跟踪后复制过去的,查询出来有数据。
------其他解决方案--------------------
已经解决

在 web.config 的连接字串上,加入 Unicode=true

<add key="cn" value="Password=webuser;User ID=webuser;Data Source=DBName;Persist Security Info=false;Unicode=true"/>
------其他解决方案--------------------
把断点加密点,进行调试,另外把语句,复制到数据库去查询一下