使用一个 SqlDataAdapter 运行多个存储过程
Posted
技术标签:
【中文标题】使用一个 SqlDataAdapter 运行多个存储过程【英文标题】:Running multiple stored procedures with one SqlDataAdapter 【发布时间】:2013-12-19 12:54:12 【问题描述】:我的问题:有没有办法像这样使用一个SqlDataAdapter
运行多个存储过程
adapter = new SqlDataAdapter("ProcforselectUserTableWhere ; ProcforselectuserTypeAuthorizationWhere", con);
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.AddWithValue("@Userid", Request.QueryString[0]);
adapter.Fill(dataset);
我试过了,但我得到了错误:
找不到存储过程'ProcforselectUserTableWhere; ProcforselectuserTypeAuthorizationWhere'。
请帮忙
【问题讨论】:
您需要将其变为 SQL 命令,而不是使用多个 EXEC,然后添加您自己的显式参数。或者写一个存储过程来做。 【参考方案1】:不,这是不可能的,因为存储过程的执行方式与原始 SQL 语句不同。看,参数隐含在存储过程中,而不是在查询中定义。因此Fill
方法正在寻找一个在CommandText
中直接命名的存储过程。
【讨论】:
以上是关于使用一个 SqlDataAdapter 运行多个存储过程的主要内容,如果未能解决你的问题,请参考以下文章
C# SqlDataAdapter 与来自多个数据库的表的 JOIN
使用 SqlDataAdapter 用新名称填充数据集中的表,代码不完全运行且没有错误