奇怪,为什么存储过程报错?(在线等待,谢谢)

roundmoon88 2008-10-17 05:20:46
我今天在Visual studio 2008上做了一个简单的存储过程,运行通过,当我编译部署之后,在Sql server 2005上面可以得到运行结果,代码如下:

[Microsoft.SqlServer.Server.SqlProcedure]
public static void GetJobList()
{
// 在此处放置代码

string sql = "Select j.JobID,j.JobTitle,j.CreatedDateTime From Jobs j";

using (SqlConnection conn = new SqlConnection("context connection = true"))
{
conn.Open();
SqlPipe sp = SqlContext.Pipe;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;

SqlDataReader reader = cmd.ExecuteReader();
sp.Send(reader);
}
}

可是当我修改上面的SQL:
string sql = "Select j.JobID,j.JobTitle,j.CreatedDateTime From Jobs j"
+ "inner join Recruiters r on r.RecruiterID = j.RecruiterID";

这是没有道理的,这个查询串我在数据库上试过,没有错的.但是为什么加上inner join子句之后,就出错了呢?那位高手请帮忙?

说明:

(1)部署之后,在数据库端我已经运行:

EXEC sp_configure 'clr enabled', 1
RECONFIGURE WITH OVERRIDE

(2) 出错的查询串(如下),是反复在数据库上验证没错的.
Select j.JobID,j.JobTitle,j.CreatedDateTime From Jobs j inner join Recruiters r on r.RecruiterID = j.RecruiterID

(3)下面是存储过程的报错信息:

Msg 6522, Level 16, State 1, Procedure GetJobList, Line 0
執行使用者自訂常式或彙總 'GetJobList' 時,發生 .NET Framework 錯誤:
System.Data.SqlClient.SqlException: 無法繫結多重部份 (Multi-Part) 識別碼 "j.RecruiterID"。
System.Data.SqlClient.SqlException:

...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
playwarcraft 2008-10-17
  • 打赏
  • 举报
回复
我剛想說,
應該是
string sql = "Select j.JobID,j.JobTitle,j.CreatedDateTime From Jobs j"
+ "inner join Recruiters r on r.RecruiterID = j.RecruiterID";

inner join前少空格

這樣的情況,一般debug,把sql字串copy出來,一下就能發現錯誤吧
hyde100 2008-10-17
  • 打赏
  • 举报
回复
解决就好
nalnait 2008-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roundmoon88 的回复:]
已经解决,是在是晕,是空格缺少问题. 谢谢关注.
[/Quote]。
水族杰纶 2008-10-17
  • 打赏
  • 举报
回复
解決就好~~
roundmoon88 2008-10-17
  • 打赏
  • 举报
回复
已经解决,是在是晕,是空格缺少问题. 谢谢关注.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧