我在执行存储过程时遇到问题...这个自动生成的t-sql查询有什么问题?
我有试图调用存储过程的C#代码。它看起来有点像这样:
DataTable myDataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
SqlCommand selectCommand = new SqlCommand("MyStoredProc", connection);
selectCommand.Parameters.Add(new SqlParameter("@myGuid", myGuid));
SqlDataAdapter da = new SqlDataAdapter(selectCommand);
da.Fill(myDataTable);
}
当我执行它,我收到写着“附近有语法错误MyStoredProc'”的错误。
如果我跑SqlProfiler,我看到它试图运行我的存储过程是这样的:
exec sp_executesql
N'MyStoredProc',
N'@myGuid uniqueidentifier',
@myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
果然,如果我尝试做同样的事情,我得到了同样的错误。所以我的问题是:
- 生成的查询有什么问题?
- 为什么C#生成无效查询?我在C#代码中做错了什么?
编辑: Agent_9191钉它...我愚蠢地留出到的SelectCommand类型设置为StoredProcedure的声明。新产生的查询是:
exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
这(当然)工作正常。
请显示发生错误的实际存储过程。我的直觉是,SQL有问题,而不是C#代码。 – 2009-10-15 20:52:43
@Josh:不......它不是......我可以用任何随机字符串(不存在的存储过程)替换“MyStoredProc”,我仍然会得到错误...这真的是一个语法错误电话。 – Beska 2009-10-15 20:57:13