C# 使用一个 SqlConnection 进行多个查询

2024-01-17

如何正确使用一SqlConnection多个查询的对象?

SqlConnection connection = new SqlConnection(connString);

static void SqlQuery(SqlConnection conn, string cmdString)
{
    using (conn)
    { 
        if (conn.State != ConnectionState.Open)
        {
            conn.Close();
            conn.Open();
        }
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = cmdString;
        cmd.ExecuteNonQuery();
    }
}

功能SqlQuery第一次调用抛出后System.InvalidOperationException“ConnectionString 属性未初始化”


简而言之,不要这样做


创建类的新实例SqlConnection不会创建到 SQL Server 的新网络连接,而是租用现有连接(或创建新连接)。 .NET 为您处理物理连接池。

当您完成连接(您可以通过它发送多个查询)时Close() or Dispose()(或使用using{}最好是块)。

没有必要缓存 SqlConnection 类的实例,这也不是一个好的做法。

Update

对于您的方法来说,这是一个更好的模式,您不必担心连接状态

static void SqlQuery(string cmdString)
{
    using (var connection = new SqlConnection(connString))
    using (var cmd = connection.CreateCommand(cmdString, connection))
    { 
        connection.Open();    
        // query        
        cmd.ExecuteNonQuery();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 使用一个 SqlConnection 进行多个查询 的相关文章

随机推荐

  • 如何为 Mac OSX 编写虚拟打印机驱动程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要为 OSX 编写一个 虚拟打印机驱动程序 以便当用户按 Command P 打开 打印 对话框时
  • SQL模糊匹配

    希望我没有重复这个问题 在在这里发帖之前 我在这里做了一些搜索和谷歌 我正在使用启用全文的 SQL Server 2008R2 运行 eStore 我的要求 有一个产品表 其中包含产品名称 OEM 代码 该产品适合的型号 一切都在文字中 我
  • 我如何使用 zip(), python

    例如 我有这些变量 a 1 2 b 3 4 如果我使用函数zip 对于它 结果将是 1 3 2 4 但我有这个清单 a 1 2 3 4 而且 我需要得到与第一个结果相同的结果 1 3 2 4 但是 当我这样做时 zip a I get 1
  • 在 C 中写入多个文件并迭代其名称

    我试图通过迭代 进行一些计算并将索引添加到文件名来编写一堆文件 这是我的代码的一部分 我强调了代码停止编译的位置 float AltAzCalc int d float t float Lon float RA float Dec floa
  • 计算所有 k 乘积之和的高效算法

    假设给你一个列表L of n数字和整数k
  • Jenkins 以非常高的 CPU 使用率运行

    我最近从 Jenkins 1 6 升级到 2 5 这样做之后 我注意到 CPU 使用率非常高 有时超过 300 只有 4 个核心 所以我认为它不会超过 400 我不知道从哪里开始调试这个 但这是一个线程转储 https gist githu
  • 在哪里可以找到 dojo 工具包 dijit 小部件的图标图像列表?

    我想这是一个简单的问题 但尽管进行了一些谷歌搜索 我仍然没有找到答案 有谁知道在哪里可以找到 Dojo 工具包中可用图标的列表 最好看的地方是Dojo Toolkit nightly 图标目录 http archive dojotoolki
  • 在子文件夹中搜索 VSCode,而不是整个工作区

    如何仅在工作区的一个子文件夹中进行搜索 CTRL SHIFT F searches in the whole workspace and since this is large I get way too many hits in unre
  • Objective-C - 将 CSV 解析为数组

    我如何将 CSV 解析为数组 它只是我转换为 CSV 的一列电子表格 所以应该不会太难吧 我该怎么做 使用适当的 CSV 解析器 例如https github com davedelong CHCSVParser https github
  • 如何在整数列上指定“喜欢”?

    这让我很困惑 我想我会将其提交给 SO 社区寻求帮助 用户想要选择以某个 ID 开头的所有订单 例如 123会回来123 12345 1238790等等 但是 ID 是一个 int 列 我正在使用 nHibernate 目前我的线路是 cr
  • C++ 异常会通过 C 代码安全传播吗?

    我有一个 C 应用程序调用SQLite http www sqlite org 的 SQLite 使用 C 语言 sqlite3 exec http www sqlite org c3ref exec html它又可以调用我用 C 实现的回
  • 无法在本地以及 docker 中启动“django”项目

    我在用Docker部署Python2 7申请与Django1 8 过去两天我遇到了一些问题 我发现错误如下 Docker 镜像 python 2 7 slim buster Error root 64f8c580dd0a code pyth
  • 如何使 scrapy 中的 start_url 从消息队列中使用?

    我正在构建一个 scrapy 项目 其中有多个蜘蛛 每个域一个蜘蛛 现在 要抓取的 URL 是动态地来自用户给定的查询 所以基本上我不需要进行广泛的爬行 甚至不需要跟踪链接 将会有一个接一个的网址 我只需要使用选择器进行提取 所以我在想 如
  • SQL Server SCOPE_IDENTITY() - 线程安全

    我们必须修改数据库并自己管理 IDENTITY 列 而不是依赖于 auto inc 字段 我们的解决方案是有一个 生成器 表 其中有一个 auto inc 字段 我们插入到该表中 然后读取 SCOPE IDENTITY 值以获取新的 ID
  • Android ToneGenerator 示例代码 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人使用 ToneGenerator 类获得过任何示例代码 我想生成频率范围约为 200
  • 使用 .NetCore RC2 自动化 Nuget 包推送

    我目前正在开发一个 NET Core 库 我将在另一个项目中将其用作 NuGet 包 我已经能够在项目目录中使用 dotnet pack 命令成功打包项目 并将该包上传到 MyGet 我更愿意使用 nuget Push 命令来自动化推送 N
  • 指向 C 中前向声明结构数组的指针

    我对 C 中的前向声明有疑问 Code typedef struct yhash s t yhash forward declaration struct yhash s size t size h t yhash yhash pointe
  • android:从图库中选择图像然后裁剪并显示在图像视图中

    我真的需要这个代码 我在互联网上搜索了 3 个小时 但我找不到完整而简单的代码 我测试了很多代码 但有些代码不起作用 有些代码不好 请帮助我提供完整而简单的代码代码 谢谢 编辑 我有这个用于选择图像的代码 但请为我在标题中所说的所有内容提供
  • 导入错误:pyttsx 中没有名为“driver”的模块

    我正在尝试运行语音程序Python 3 5 2与pyttsx图书馆 但我遇到了很多问题 第一个是关于发动机的 当我运行命令时import pyttsx 编译器给了我如下错误 ImportError No module named engin
  • C# 使用一个 SqlConnection 进行多个查询

    如何正确使用一SqlConnection多个查询的对象 SqlConnection connection new SqlConnection connString static void SqlQuery SqlConnection con