这个自动生成的t-sql查询有什么问题?

Bes*_*ska 1 .net t-sql datatable

我在执行存储过程时遇到问题...

我有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);
}
Run Code Online (Sandbox Code Playgroud)

当我执行它时,我收到一条错误,上面写着"MyStoredProc'附近的语法不正确".

如果我运行SqlProfiler,我看到它正在尝试运行我的存储过程,如下所示:

exec sp_executesql 
N'MyStoredProc',
N'@myGuid uniqueidentifier',
@myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
Run Code Online (Sandbox Code Playgroud)

果然,如果我尝试做同样的事情,我会得到同样的错误.所以我的问题是:

  1. 生成的查询有什么问题?
  2. 为什么C#生成无效查询?我在C#代码中做错了什么?

编辑: Agent_9191钉它......我愚蠢地省略了将selectCommand类型设置为StoredProcedure的语句.新生成的查询是:

exec MyStoredProc @myGuid='FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF'
Run Code Online (Sandbox Code Playgroud)

这(当然)工作正常.

Age*_*191 7

一定要设置你的selectCommand.CommandType = CommandType.StoredProcedure.