我正在尝试连接数据库并一直在寻找解决此错误的方法
不支持关键字:
select first_name + ' ' + last_name as name
,position_descr
,staff_bio
from dbo.staff_bios b
join dbo.staff_position_lk p
on b.position_id= P.Staff_Position_ID
Where Staff_Bios_ID = @StaffBiosID
AND Effective_Date = (Select MAX(Effective_Date)
From EyeCareForYou.dbo.Staff_Bios
Where Staff_Bios_ID = @StaffBiosID)'.
描述:
在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:
System.ArgumentException:不支持关键字:'select first_name +''+ last_name作为名称 ,position_descr ,staff_bio 来自dbo.staff_bios b 加入dbo.staff_position_lk p 在b.position_id P.Staff_Position_ID上 其中Staff_Bios_ID = @StaffBiosID AND Effective_Date =(选择MAX(Effective_Date) 来自EyeCareForYou.dbo.Staff_Bios 其中Staff_Bios_ID = @StaffBiosID)'。
这是来自我的web.config
<appSettings>
<add key="SqlSelect" value="Data Source=mysource; Initial Catalog=EyeCareForYou; User ID=EyeCareForYou; Password='mypassword';" />
</appSettings>
<connectionStrings>
<add name="SqlSelect" connectionString="Data Source=mysource; Initial Catalog=EyeCareForYou; User ID=myuserid; Password='mypassword';"/>
</connectionStrings>`
我尝试过很多东西。非常感谢帮助。
答案 0 :(得分:1)
请尝试以下操作:
‘.
; as name
更改为as [Name]
。如需额外积分,请执行以下操作:
EyeCareForYou.dbo.Stuff_Bios
中删除数据库名称; first_name
替换为b.first_name
。最后两个不是必需的,但它们会使您的代码更清晰。 仅当您进行使用来自多个数据库的数据的查询时,才在查询中使用数据库名称。
如果这没有帮助,那么发布完整的.NET代码。
答案 1 :(得分:0)
您的SQL不完整,您缺少连接条件。它应该是: -
select first_name + ' ' + last_name as name
,position_descr
,staff_bio
from dbo.staff_bios b
join dbo.staff_position_lk p
on b.position_id=p.position_id
同时在网络配置中删除密码中的单引号: -
<appSettings>
<add key="SqlSelect" value="Data Source=mysource; Initial Catalog=EyeCareForYou; User ID=EyeCareForYou; Password=mypassword;" />
</appSettings>
<connectionStrings>
<add name="SqlSelect" connectionString="Data Source=mysource; Initial Catalog=EyeCareForYou; User ID=myuserid; Password=mypassword;"/>
</connectionStrings>