【发布时间】:2012-09-12 09:26:50
【问题描述】:
我想调用存储过程类型的 command.ExecuteReader(),但是我不希望我传递的参数名称与 SP 中的参数名称相同。以下是我正在尝试做的示例
SP:
ALTER PROCEDURE SPName
@Id nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM TableName
WHERE ColumnName = @Id
END
GO
代码:
using (SqlCommand command = new SqlCommand(spName, connection) { CommandType = CommandType.StoredProcedure })
{
command.parameters.Add(new SqlParameter(*paramaeter name*, sqlDbType.nvarchar){ Value = "SomeValue"};
}
【问题讨论】:
-
所以你不想传递参数或者你不知道参数名称?
-
如果我理解正确,你想调用一个有参数调用@Id 的sp 说,有一个名为@somethingelse 的参数?我不认为这是可能的,但我也很难理解你为什么想要 - 你想解决什么问题?
-
我正在尝试编写一个通用方法,在该方法中我传递参数 object[] 并循环遍历它们以填充参数集合以传递给 SP。我的意思是我不想也必须传递参数名称。
-
@ahmadn。我将此问题标记为重复的原因是因为链接到的问题(当然)是相同的,但更重要的是,最佳答案可以满足您的需求。
-
@AndrasZoltan 您提供的链接包含我需要的解决方案。谢谢。
标签: c# sql stored-procedures parameters