我在执行存储过程时遇到问题...
我有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'
果然,如果我尝试做同样的事情,我会得到同样的错误。所以我的问题是:
编辑: Agent_9191钉它......我愚蠢地省略了将selectCommand类型设置为StoredProcedure的语句。新生成的查询是:
exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
这个(当然)工作正常。
答案 0 :(得分:7)
请务必设置selectCommand.CommandType = CommandType.StoredProcedure
。