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

oracle分号的问题
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,大家指教下。


------最佳解决方案--------------------
SQLPLUS运行的时候没有分号结果是2,

这个你理解错了,sqlplus 中回车显示 2 ,是表示第二行,表示你的sql语句没有结束呢,让你接着写,加上分号 (;)表示一句sql结束 ,然后才能执行 ->查询出结果,
------其他解决方案--------------------
可是不加分号我就取不到值的,因为是初次用ORACLE,我现在不明白是语句有问题还是ORACLE配置有问题。
------其他解决方案--------------------
不是oracle的问题
在sqlplus 中一句sql结束必须有;好,否则表示sql语句没有结束,在客户端调用的话,看情况可以写也可以不写
------其他解决方案--------------------
那我应该如何解决这个问题,这代码应该没有问题吧,连接sql没有问题
------其他解决方案--------------------
你可以把代码跟踪出来(不是手动的拼凑),放到sqlplus 中或者pl/sql  中执行看看 有没有结果
------其他解决方案--------------------
跟踪过了,最后的SQL语句在SQLPLUS中缺少分号,所以不执行,统计不到!
------其他解决方案--------------------
引用:
跟踪过了,最后的SQL语句在SQLPLUS中缺少分号,所以不执行,统计不到!

那你加分号在sqlplus看看是否有数据?
------其他解决方案--------------------
有数据的,在SQLPLUS加上分号就正确
------其他解决方案--------------------
引用:
SQLPLUS运行的时候没有分号结果是2,

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


赞同