ORACLE方面的问题,程序是用ASP.net写的,用的是oracle10G
 public string CheckLogin(string UserName, string Pwd)
        {
            string EmpID = "";
            string OracleStr = string.Format("select ID from T_sysuser where UserName='{0}' and Password='{1}'", UserName, Pwd);
            DataView dv = data.getDataView(OracleStr);            if (dv.Count > 0)
            {
                EmpID = dv.Table.Rows[0][0].ToString();
            }            return EmpID;
        }数据库连接的是ORACLE,连接SQL的时候没有问题的
我每次都取不到值,因为在SQLPLUS中运行时候都缺少分号
dv.Count取的是空值,在SQLPLUS运行的时候没有分号结果是2,加上分号就正确,就是这个问题,我想问是什么原因?是缺少ORACLE的什么东西?第一次连oracle,大家指教下。

解决方案 »

  1.   

    SQLPLUS运行的时候没有分号结果是2,这个你理解错了,sqlplus 中回车显示 2 ,是表示第二行,表示你的sql语句没有结束呢,让你接着写,加上分号 (;)表示一句sql结束 ,然后才能执行 ->查询出结果,
      

  2.   

    可是不加分号我就取不到值的,因为是初次用ORACLE,我现在不明白是语句有问题还是ORACLE配置有问题。
      

  3.   

    不是oracle的问题
    在sqlplus 中一句sql结束必须有;好,否则表示sql语句没有结束,在客户端调用的话,看情况可以写也可以不写
      

  4.   

    那我应该如何解决这个问题,这代码应该没有问题吧,连接sql没有问题
      

  5.   

    你可以把代码跟踪出来(不是手动的拼凑),放到sqlplus 中或者pl/sql  中执行看看 有没有结果
      

  6.   

    跟踪过了,最后的SQL语句在SQLPLUS中缺少分号,所以不执行,统计不到!
      

  7.   

    那你加分号在sqlplus看看是否有数据?
      

  8.   

    有数据的,在SQLPLUS加上分号就正确