处理 SQL 连接

2023-12-28

我有一个连接到数据库并检索数据表的 SQL 类。我知道 SqlConnection 必须在完成后释放。我知道这可以使用using块,但是也可以接受Dispose()在这个类的析构函数中调用?

这是我的代码:

public class SQLEng
{

    //Connection String Property
    //Must be set to establish a connection to the database
    public string ConnectionString{ get; set; }
    SqlConnection _Conn;

    //Overridden Constructor enforcing the Connection string to be set when created
    public SQLEng(string connectionString)
    {
        ConnectionString = connectionString;
        _Conn = new SqlConnection(connectionString);
    }

    //ensure the SqlConnection is disposed when destructing this object
    public ~SQLEng()
    {
        _Conn.Dispose();
    }

    //various other methods to get datatables etc...
}

基本上我希望有一个类变量 SqlConnection,而不是在访问数据库的每个方法中实例化 SqlConnection。这是声音练习吗?


你的设计鼓励坚持(大概是开放的)SqlConnection很长一段时间。最佳实践是在需要之前打开连接,然后在完成后立即释放(关闭和处置)它。

是的,创建新连接会产生一些开销;连接池 http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx减少了大部分处理时间。更糟糕的是在服务器上保持许多连接处于活动状态。

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

处理 SQL 连接 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • git:如何找到已经合并的两个分支的共同祖先

    为了找到 2 个 git 分支的共同祖先 需要执行以下操作 git merge base branch another branch 好的 但是 如果两个分支已经合并怎么办 当我使用merge base在这种情况下 我得到的提交是合并之前的
  • 如何检测 OS X 是否处于深色模式?

    我的可可应用程序在新的 OS X 黑暗模式 下运行时必须更改其行为 有没有办法检测 OS X 风格是否设置为该模式 认为还没有可可方法来检测它 但是您可以使用defaults read检查 OSX 是否处于深色模式 defaults rea
  • 如何更改 Xcode 4.0(内部版本 4A304a)中的默认公司名称[重复]

    这个问题在这里已经有答案了 可能的重复 我在哪里设置我的公司名称 https stackoverflow com questions 2956464 where do i set my company name 我刚刚安装了 Xcode 4
  • Django:基于 DRF 令牌的身份验证 VS JSON Web 令牌

    我正在构建一个现实世界的应用程序 用户将主要从 Android iOS 设备以及桌面访问该应用程序 从我的基础研究中 我意识到与基于会话的身份验证相比 基于令牌的身份验证机制对于客户端 服务器模型来说更加更好和更优雅 在 Django 中
  • 仅在 Vim 中启用 .h 和 .cpp 文件的某些插件和选项

    我在 Vim 中安装了 delimitMate 以完成大括号 但它针对所有文件运行 而不仅仅是 h 和 cpp 文件 DelimitMate 有一个在缓冲区中禁用自身的选项 因此我需要在 vimrc 中添加一些内容 表示 在除 h 和 cp
  • 从应用程序脚本中的电子表格更新下拉列表

    我正在尝试学习 Google 的 HTML Service UI 服务 并且正在努力弄清楚如何根据电子表格中的数据更新 UI 中的下拉列表 我从以下位置复制了以下代码这个谷歌教程 https developers google com ap
  • 授权 Google Drive Android API

    我尝试通过以下方式访问 Google 云端硬盘中的数据谷歌云端硬盘 Android API https developers google com drive android auth 不是 Web API 令人疯狂的是 当我使用此访问权限
  • Windows 上的 script/generate:“script”未被识别为内部或外部命令

    每当我尝试使用 Rails 时script generate or script install命令我收到这种错误 C workspace gt script generate bigcommand script is not recogn
  • 如何在 MySQL 中创建表别名

    我正在将 MS Access 应用程序 已将表链接到 MSSQL Server 迁移到 MySQL 作为克服一些 MSAccess 表命名问题的方法 我正在寻求一种解决方案来添加 MySQL 表别名 该别名将指向 MySQL 数据库中的现有
  • Javascript 隐藏所选选项

    我有这段代码来隐藏选定的选项 function connect selectbox option show selectbox each function i var obj selectbox option value this val
  • Django自定义用户管理员change_password

    我成功地在 django 中使用了自定义用户模型 最后要做的事情是超级用户更改任何用户密码的 AdminChangePasswordForm 目前 来自 admin myapp user 的更改密码链接给出了 404 答案 覆盖 get u
  • 数组的长度属性在哪里定义?

    我们可以确定一个的长度ArrayList
  • 如何在 C# 中将 SID 转换为帐户名

    我有一个 C 应用程序 可以扫描目录并收集一些信息 我想显示每个文件的帐户名 我可以通过获取 FileInfo 对象的 SID 在本地系统上执行此操作 然后执行以下操作 string GetNameFromSID SecurityIdent
  • C++ 相当于 Python __getattr__(self, name)

    我喜欢 Python 的原因之一是它的方式自定义属性访问 https docs python org 2 reference datamodel html customizing attribute access class Foo obj
  • 在Prolog中查找最大子列表

    我是 Prolog 新手 正在尝试解决以下问题的实例最大子数组问题 https en wikipedia org wiki Maximum subarray problem 我有以下相当优雅的 C 代码 int maxSubArray ve
  • 带阴影的 UIView

    我试图在一个简单的 UIView 对象周围创建一个阴影 该对象添加到 UIViewController 视图的顶部 这样做最直接的方法是什么 首先 请务必导入 Quartz Core 库 import
  • Foundation 可以告诉我 Objective-C 方法是否需要特殊的结构返回吗?

    据我了解 背景 Objective C 方法调用基本上是带有两个隐藏参数 接收器和选择器 的 C 函数调用 Objective C 运行时包含一个名为 objc msgSend 的函数 允许以这种方式调用方法 不幸的是 当函数返回结构时 可
  • 为 OpenCL 设置 Visual Studio 2010 的正确方法

    设置 VisualStuio 2010 处理 cl 文件的正确方法是什么 我在工具 文本编辑器 文件扩展名下添加了 cl 并将 usertype dat 复制到 common7 ide 文件夹中 但 VS 为 float4 或 cross
  • 如何在登录后正确注销 Java EE 6 Web 应用程序

    一个非常简单的要求 登录 Web J2EE 6 应用程序后 如何让用户再次注销 我见过的大多数 全部 书籍和教程都展示了如何向其应用程序添加登录 登录错误页面 并使用 j security check 方法演示安全主体 角色 领域等的使用
  • 处理 SQL 连接

    我有一个连接到数据库并检索数据表的 SQL 类 我知道 SqlConnection 必须在完成后释放 我知道这可以使用using块 但是也可以接受Dispose 在这个类的析构函数中调用 这是我的代码 public class SQLEng