我正在尝试将参数传递给 sql 查询(在 c# 中),但参数位于文本块内:
SqlCommand cmd = new SqlCommand(@"EXEC sp_helptext N'dbo.@spname';");
cmd.Parameters.AddWithValue("@spname", "StoredProcedureName");
如果我直接在查询中使用存储过程名称,它可以正常工作,但如果我传递参数,它就不起作用。
有谁知道如何做到这一点?
我正在尝试将参数传递给 sql 查询(在 c# 中),但参数位于文本块内:
SqlCommand cmd = new SqlCommand(@"EXEC sp_helptext N'dbo.@spname';");
cmd.Parameters.AddWithValue("@spname", "StoredProcedureName");
如果我直接在查询中使用存储过程名称,它可以正常工作,但如果我传递参数,它就不起作用。
有谁知道如何做到这一点?
你可以做
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");
是更好的选择