如何从 SQL Server 中的存储过程检索参数列表

2024-05-11

使用 C# 和 System.Data.SqlClient,有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表?

我有一个“多环境”场景,其中同一数据库模式有多个版本。环境的示例可能是“开发”、“暂存”和“生产”。 “开发”将有一个版本的存储过程,“登台”将有另一个版本。

我想做的就是在向参数传递值并调用存储过程之前验证参数是否存在。避免 SqlException 而不是必须捕获它对我来说是一个优点。

Joshua


你想要的SqlCommandBuilder.DeriveParameters(SqlCommand) http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.deriveparameters.aspx方法。请注意,它需要与数据库进行额外的往返,因此这会对性能造成一定程度的影响。您应该考虑缓存结果。

调用示例:

using (SqlConnection conn = new SqlConnection(CONNSTRING))
using (SqlCommand cmd = new SqlCommand("StoredProc", conn)) {
   cmd.CommandType = CommandType.StoredProcedure;
   SqlCommandBuilder.DeriveParameters(cmd);

   cmd.Parameters["param1"].Value = "12345";

   // ....
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 SQL Server 中的存储过程检索参数列表 的相关文章

随机推荐

  • 通过硬件按钮启动 Android 应用程序

    我希望构建一个在单击特定硬件按钮时启动的 Android 应用程序 例如 当我按下音量增大按钮 30 秒时 应用程序必须在不增加音量的情况下启动 我想知道这可能吗 你可以定义一个BroadcastReceiver处理ACTION MEDIA
  • Perl 中字符串之间的字符匹配计数

    我有一个字符串 例如字符串 1 需要与另一个字符串 字符串 2 匹配 两个字符串的长度相同并且不区分大小写 我想打印两个字符串之间的字符匹配数 E g String 1 stranger String 2 strangem Match co
  • Go中如何从json字符串中获取键值

    我想尝试从 Go 中的 JSON 获取键值 但我不确定如何操作 我已经能够使用 simplejson 读取 json 值 但是我无法找到如何获取键值 有人能指出我正确的方向和 或帮助我吗 谢谢你 您可以通过执行以下操作来获取 JSON 结构
  • 如何在同一命名空间内从函数 B 调用函数 A?

    假设我有命名空间 var Namespace A function alert Hello B function Call A from here do other stuff 在这个命名空间中 我想让A成为B的辅助函数 也就是说 A 永远
  • 什么时候使用哈希表?

    什么情况下使用哈希表可以提高性能 什么情况下不能 哪些情况不适合使用哈希表 什么情况下使用哈希表可以提高性能 什么情况下不能 如果您有理由关心 请使用哈希表和您正在考虑的其他任何内容来实现 将您的实际数据放入其中 并衡量哪个性能更好 也就是
  • pyqt5中主窗口关闭时如何关闭其他窗口

    我想在主窗口关闭时关闭主窗口打开的所有其他窗口 请在下面找到最小值 我正在测试的代码 from PyQt5 QtWidgets import QApplication QMainWindow QPushButton QLabel QVBox
  • 如何确保我的 matplotlib 轴属于自定义类?

    我有一个自定义图形类 并希望确保与其关联的所有轴 无论是使用subplots or twinx 等具有自定义行为 现在 我通过在创建每个轴后将新方法绑定到每个轴来实现这一点 例如通过使用 import types def my ax met
  • django测试非字段验证错误

    我有一个自定义验证函数 但我想使用 Django 提供的单元测试框架来测试它是否抛出了应该抛出的错误 我可以直接调用该函数并以这种方式测试它 但这并不能确保它在视图中正确使用 即 我想进行集成测试 django 测试非特定字段验证错误的方法
  • ant install 部署 Tomcat webapp 因权限问题失败

    我一直在关注非常好的Tomcat6应用程序开发人员指南 http tomcat apache org tomcat 6 0 doc appdev index html 我已经抓住了他们的build xml其中包含名为的方便的 Ant 任务i
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • Python 给定 k 个分区的整数分区

    我正在尝试寻找或开发Python 的整数分区代码 仅供参考 整数分区将给定整数 n 表示为小于 n 的整数之和 例如 整数5可以表示为4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 我为此找到了许多解决方案 ht
  • pg_stat_activity 中具有“空闲”状态的持久“COMMIT”查询

    如果我查询 select from pg stat activity where application name example application 我得到了很多行 哪个州是idle查询是COMMIT 它们是持久的并且不会消失 一段时
  • 如何获取当前文件的父文件?

    要获取当前 cfm我使用的文件 GetFileFromPath GetCurrentTemplatePath 有没有一种简单的方法来获取当前文件的父文件 IE 如果当前文件是 MyApp Users addUser cfm我想回来Users
  • 继承接口方法的重新实现

    我不完全理解如何使用接口 所以我必须问 我使用 BaseClass 它实现了 IBaseClass 接口 这些接口仅包含一个声明 public interface IBaseClass void Refresh 所以我在我的 Basecla
  • 如何在一对一关系上使用 onDelete: 'CASCADE'

    当用户被删除时 我尝试删除用户的个人资料 但它并没有删除个人资料上的任何内容 用户实体 Entity export class User PrimaryGeneratedColumn id number Column name string
  • MySQL:如何获取上次更新的更改

    我正在使用 MySQL 和 PHP 开发数据库应用程序 此时我正在尝试获取上次更新引起的更改 我解决问题的第一个方法是 使用 SELECT 获取 旧 状态 使用 UPDATE 进行更改 使用 SELECT 获取 新 状态 将数组与 php
  • 从其 BlobKey 获取 Google Cloud Storage 文件

    我编写了一个 Google App Engine 应用程序 它利用 Blobstore 来保存以编程方式生成的数据 为此 我使用了文件API https developers google com appengine docs java b
  • 使用合并适配器;寻找一种方法来确定 ListActivity onListItemClicked 方法中列表项的数据类型

    我使用 MergeAdapter 创建一个分段列表 其中列表的每个部分都包含不同类型的基础数据 一切都按预期进行 然而 在确定所选列表项背后的数据类型时 ListActivity 的 onListItemClicked 方法似乎比应有的更复
  • 在 Visual Studio 中方法的返回行上检查函数的返回值

    我有一行这样的代码 return foo barIn 如果我在该行上放置一个断点 我可以检查 foo barIn 的返回值而不单步执行 foo 吗 我可以将代码重写为 var result foo barIn return result 但
  • 如何从 SQL Server 中的存储过程检索参数列表

    使用 C 和 System Data SqlClient 有没有办法在实际执行 SQL Server 上的存储过程之前检索属于该存储过程的参数列表 我有一个 多环境 场景 其中同一数据库模式有多个版本 环境的示例可能是 开发 暂存 和 生产