C# 选择别名为的列时发生SQL异常
我的SQL查询是C# 选择别名为的列时发生SQL异常,c#,alias,sqlexception,C#,Alias,Sqlexception,我的SQL查询是 cmd = new OleDbCommand("select vchr_No as voucher No, vchr_Date as Date, vchr_Acnthd as Debit, vchr_Prtynm as Paid to from cshvchrs where vchr_No like '%" + vchno +
cmd = new OleDbCommand("select vchr_No as voucher No, vchr_Date as Date,
vchr_Acnthd as Debit, vchr_Prtynm as Paid to
from cshvchrs
where vchr_No like '%" + vchno + "%' ", con);
当我尝试检索数据时,出现异常:
SELECT语句包含拼写错误或缺少的保留字或参数名称,或者标点符号不正确
请任何人帮助我您正在使用
Date
作为别名(vchr\u Date作为Date
)<代码>日期是保留关键字,请尝试:
vchr_Date as [Date]
或者将日期更改为其他别名
您还需要在带有空格的别名周围使用
[]
。在vchr\u Date as Date
部分
Date
是Transact-SQL上的一个参数
保留关键字是Transact-SQL语言语法的一部分
SQL Server用来解析和理解Transact-SQL的
语句和批处理
您可以使用方括号[]
等
vchr_Date as [Date]
使用您的完整查询作为
cmd = new OleDbCommand("select vchr_No as [voucher No] ,vchr_Date as [Date] ,vchr_Acnthd as Debit ,vchr_Prtynm as Paid to from cshvchrs where vchr_No like '%" + vchno + "%' ", con);
您的SQL无效-需要对包含空格的别名以及作为关键字的别名进行转义
cmd = new OleDbCommand("select vchr_No as [voucher No] ,vchr_Date as [Date] ,vchr_Acnthd as Debit ,vchr_Prtynm as Paid to from cshvchrs where vchr_No like '%" + vchno + "%' ", con);
您指定的列名不正确。例如,片段:
vchr_No as voucher No
应表示为
vchr_No as [voucher No]
否则您将没有有效的SQL
通常,您需要在包含空格、标点符号、关键字或SQL列标识符中不允许的任何其他字符的列名周围放置[和]