我在执行存储过程时遇到问题。。。
我有一个试图调用存储过程的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附近的语法不正确”。
exec sp_executesql
N'MyStoredProc',
N'@myGuid uniqueidentifier',
@myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
果不其然,如果我尝试做同样的事情,我会得到同样的错误。因此,我的问题是:
-
生成的查询有什么问题?
-
为什么C#会生成无效的查询?我的C#代码有错吗?
编辑:
代理_9191搞定了……我愚蠢地省略了将selectCommand类型设置为StoredProcedure的语句。新生成的查询是:
exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
这个(当然)很好用。