0

我正在尝试连接到数据库并一直在寻找解决此错误的方法

不支持关键字:

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: Keyword not supported: '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) 来自 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>`

我已经尝试了很多东西。帮助将不胜感激。

4

2 回答 2

1

尝试以下操作:

  • 从查询末尾删除‘.
  • 检查您的连接字符串 - 密码不需要引号;
  • 更改as nameas [Name]

对于加分,请执行以下操作:

  • 从此部分中删除数据库名称EyeCareForYou.dbo.Stuff_Bios
  • 限定列名以使您的查询更具可读性。替换first_nameb.first_name

最后两个不是必需的,但它们将使您的代码更清晰。仅当您使用来自多个数据库的数据进行查询时,才在查询中使用数据库名称。

如果这没有帮助,请发布您的完整 .NET 代码。

于 2013-08-06T08:56:19.903 回答
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>
于 2013-08-06T06:00:58.080 回答