在给定分配给其SelectCommand属性的存储过程的名称的情况下,是否有一种从SqlDataSource获取预期参数列表的合理方法?
答案 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;
有关详细信息,请查看SqlParameterCollection和SqlParameter类定义。
答案 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'