从给定存储过程名称的SQLDataSource获取参数列表

时间:2009-03-11 17:40:40

标签: .net sql-server

在给定分配给其SelectCommand属性的存储过程的名称的情况下,是否有一种从SqlDataSource获取预期参数列表的合理方法?

4 个答案:

答案 0 :(得分:10)

您可以使用SqlCommandBuilder.DeriveParameters方法返回与存储过程关联的参数的信息。迭代集合将允许您确定参数名称,数据类型,方向等。

SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection("myConnectionString");
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "myStoredProcName";
cmd.Connection = conn;

conn.Open();
SqlCommandBuilder.DeriveParameters(cmd);
conn.Close();

SqlParameterCollection collection = cmd.Parameters;

有关详细信息,请查看SqlParameterCollectionSqlParameter类定义。

答案 1 :(得分:1)

我不确定您是否可以直接在ADO.NET环境中以某种方式执行此操作 - 但您始终可以查询“sys”系统视图以获取该信息:

select * from sys.parameters
where object_id in 
      (select object_id from sys.procedures where name = 'YourSProc')

马克

答案 2 :(得分:0)

我没有VS.NET试试,但.Prepare()可能会为你做这个:)

或者您可以添加参数。 :)

答案 3 :(得分:0)

还有:

EXEC sp_sproc_columns 'YourSProc'