1

我正在尝试将参数传递给 sql 查询(在 c# 中),但参数位于文本块内:

SqlCommand cmd = new SqlCommand(@"EXEC sp_helptext N'dbo.@spname';");
cmd.Parameters.AddWithValue("@spname", "StoredProcedureName");

如果我直接在查询中使用存储过程名称,它可以正常工作,但如果我传递参数,它就不起作用。

有谁知道如何做到这一点?

4

1 回答 1

1

你可以做

SqlCommand cmd = new SqlCommand("EXEC sp_helptext @spname");
cmd.Parameters.AddWithValue("@spname", "dbo.StoredProcedureName");

但是使用

SqlCommand cmd = new SqlCommand("sp_helptext");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@objname", "dbo.StoredProcedureName");

是更好的选择

于 2013-10-18T09:04:50.410 回答