为什么在select语句中使用别名时会将别名视为外星人?
我无法想象总是如此,但我不得不改变这段代码:
const string query =
@"SELECT C.PLATYPUSCLIENTID, E.DEWDROPNAME FOGGY
FROM DUCKBILLACCOUNT B,
PLATYPUSCLIENT C,
ENTITY E
WHERE B.DUCKBILLNUMBER = :PLATYPUSACCOUNTID
AND B.DUCKBILLACCOUNTABCID = C.DUCKBILLACCOUNTABCID
AND C.PLATYPUSCLIENTABCID = E.ABCID
ORDER BY FOGGY, PLATYPUSCLIENTID";
try {
oc.Open();
using (OracleCommand ocmd = new OracleCommand(query, oc)) {
ocmd.Parameters.Add("PLATYPUSACCOUNTID", PLATYPUSACCOUNTID);
using (OracleDataReader odr = ocmd.ExecuteReader()) {
while (odr.Read()) { . . .
......对此:
const string query =
@"SELECT C.PLATYPUSCLIENTID, E.DEWDROPNAME
FROM DUCKBILLACCOUNT B,
PLATYPUSCLIENT C,
ENTITY E
WHERE B.DUCKBILLNUMBER = :PLATYPUSACCOUNTID
AND B.DUCKBILLACCOUNTABCID = C.DUCKBILLACCOUNTABCID
AND C.PLATYPUSCLIENTABCID = E.ABCID
ORDER BY DEWDROPNAME, PLATYPUSCLIENTID";
try {
oc.Open();
using (OracleCommand ocmd = new OracleCommand(query, oc)) {
ocmd.Parameters.Add("PLATYPUSACCOUNTID", PLATYPUSACCOUNTID);
using (OracleDataReader odr = ocmd.ExecuteReader()) {
while (odr.Read()) { . . .
...让它在运行时返回vals(我得到" IndexOutOfRangeException"第一个版本)
答案 0 :(得分:4)
您需要引用别名。
E.DEWDROPNAME 'FOGGY' ...