在带有或不带有 try/catch 的 SQL 中使用 Unique Key 作为验证数据完整性的有效方法

2024-03-01

我有一个包含一些列的表,并且我在其中 3 列上设置了唯一键,以确保表中没有重复项。现在我想知道是否使用 try / catch 吞下重复项引发的异常并继续更新插入下一行foreach是个好方法吗?

            try {
                sqlWrite.ExecuteNonQuery();
            } catch (SqlException sqlException) {
                if (!sqlException.ToString().Contains("Violation of UNIQUE KEY constraint")) {
                    MessageBox.Show("Error - " + Environment.NewLine + sqlException.ToString(), "Error SQL");
                }
            } catch (Exception exception) {
                MessageBox.Show("Error - " + Environment.NewLine + exception.ToString(), "Error SQL");
            }

或者我应该在插入查询中执行 SELECT 来检查行是否存在以及是否跳过插入?我读过,使用异常作为数据验证的一部分并不好,但有些东西应该这样使用(例如如何在 C# 中检查文件锁定? https://stackoverflow.com/questions/1304/how-to-check-for-file-lock-in-c应该与 try/catch 一起使用)。


如果您有其他方法来执行此操作,则永远不应该抛出和捕获异常。现在你已经拥有了。用它!

您可以创建单个 sql 脚本或存储过程来检查和插入IF NOT EXISTS(SELECT ...)。进行两个查询速度较慢。

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

在带有或不带有 try/catch 的 SQL 中使用 Unique Key 作为验证数据完整性的有效方法 的相关文章

  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 从另一个 FORM 中取回隐藏的 FORM

    我有两种形式Form1 and Form2 我正在打开Form2 from Form1 on button Click Form2 obj2 new Form2 this Visible false obj2 Show 然后我想回来Form
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 错误:不支持的 PIVOT 列类型:文本

    我正在尝试执行 PIVOT 但出现错误 我正在尝试查看哪些患者接受了多次间隔治疗 该列是文本类型 我尝试在查询中将列类型转换为 VARCHAR MAX 但仍然收到错误 这是我的代码 SELECT patientname IntervalNa
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • RANK() OVER PARTITION 并重置 RANK

    如何获得在分区更改时重新启动的 RANK 我有这张表 ID Date Value 1 2015 01 01 1 2 2015 01 02 1
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 名称查找、实例化点 (POI) 和基本类型

    以下代码针对 X 进行编译 但不适用于 double struct X void foo double void foo X namespace NN struct A void foo A foo double error foo not
  • 编写具有多种类型的泛型扩展方法时的类型推断问题

    我正在为 IEnumerable 编写一个通用扩展方法 用于将对象列表映射到另一个映射对象列表 这就是我希望该方法的工作方式 IList
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 解释这段代码的工作原理;子进程如何返回值以及在哪里返回值?

    我不明白子进程如何返回该值以及返回给谁 输出为 6 7 问题来源 http www cs utexas edu mwalfish classes s11 cs372h hw sol1 html http www cs utexas edu
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo

随机推荐

  • 为什么函数体内定义的内置类型的未初始化对象具有未定义的值?

    问题 为什么定义内置类型的未初始化对象inside函数体具有未定义的值 而内置类型的对象已定义outside任何函数的初始化为0 or 举个例子 include
  • 如何将 Makefile 中的警告视为错误?

    是否可以将警告视为 Makefile 中的错误 从而在 Makefile 继续之前退出 此外 是否可以过滤掉哪个警告会产生错误 我的用例 我想使用 warn undefined variables与此结合 当变量未定义时 Makefile
  • 在 Bluehost 上部署 Ruby on Rails

    这里有人知道如何在 Bluehost 上部署 Ruby 应用程序吗 我对此有很大的问题 每次我将文件放入域名指向的文件夹中时 当我尝试访问该网站时 它总是会出现 403 错误 太痛苦了 这指示 https my bluehost com c
  • 在处理发生时动态刷新 JTextArea?

    我正在尝试创建一个非常简单的 Swing UI 当处理在后台进行时 该 UI 通过 JTextArea 将信息记录到屏幕上 当用户单击按钮时 我希望每次调用 textArea append someString n 立即显示在 UI 中 目
  • python 2.x 中的 textinput() 等效项

    我需要在 python 的海龟中接受用户的信息 但是 turtle textinput 函数仅适用于 3 x 及更高版本 我可以在 2 X 版本中使用替代方案吗 这是什么textinput实际上是 import tkSimpleDialog
  • Jetty - 设置系统属性[重复]

    这个问题在这里已经有答案了 我在 Jetty 上运行 webapp 应用程序的配置来自运行 Jetty 的同一服务器上的文件 在应用程序内部 我依靠系统属性来获取文件的路径 以便我可以解析它 例如 final String loc Syst
  • 如何在任何 Web 服务器(Apache 或 Mongrel 或任何其他服务器)中运行简单的 ruby​​ 脚本

    我觉得很有趣的是 当我搜索与 Ruby 相关的内容时 所有与 Ruby on Rails 相关的结果都会弹出 那么没人再使用原始红宝石了吗 然而 我是红宝石新手 今天早上我只是想在网络服务器中运行一个简单的 hello world ruby
  • 仅当 varchar 包含有效日期时,如何将其转换为日期?

    我正在寻找有关 SQL Server Management Studio 的我认为非常有用的信息 我有一个带有 type 列的表varchar存储日期 数字和字符串 这些日期以以下格式存储 dd mm aaaa 我有一个搜索匹配行的查询 一
  • 使用 Bash 脚本构建 SQL 更新语句

    对于最近的项目 我需要循环遍历 3 列的 csv ignore csv 行 acctnum errcode date 按此顺序 列命名在这里并不重要 它只是为了上下文 并使用这些变量来构建 SQL 语句 CSV 可能有 500 行 也可能有
  • android twitter outh教程回调问题

    尝试以下教程 http www androidsdkforum com android sdk development 3 oauth twitter html http www androidsdkforum com android sd
  • 如何将 Windows 窗体窗体的大小调整为小于 132x38? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 当我将无边框表单调整为较小的宽度和高
  • 填充滚动 Flex 容器的 100% 宽度

    我有一个水平滚动元素 overflow x scroll 与包含弹性项目的弹性容器 我正在尝试将背景应用于弹性容器 但正如您在下面的示例中看到的 尝试向左 向右滚动 背景仅应用于视口的可见部分 橙色 有没有什么方法可以将其扩展到全宽 而不必
  • 如何在创建多维数组后立即为其分配多个值 - 在 C 中?

    我正在用 C 进行编程 想知道是否可以一次将多个值分配给多维数组 我尝试过一些技术 但都失败了 我不感兴趣循环遍历数组来分配值 我想要快速的方式为数组中的所有索引分配新值 我正在使用的数组 ary 4 4 来自另一个的 memcpy 将覆盖
  • 有人在 php 5.6 上测试过 Codeigniter 2.2 吗?

    只是想知道 有人在 PHP 5 6 上测试过 CodeIgniter 应用程序吗 我们正在将服务器从 5 3 3 升级到 5 6 当前运行的是 CodeIgniter 2 2 这样可以吗 如果是 如果您发布反馈意见 我将非常感激您遇到了哪些
  • 无法访问 wp-admin

    我意识到这个问题过去曾出现过 但我一直无法找到解决我的问题的方法 我的 wp admin 在我的本地主机上工作正常 但是 当我迁移到实时服务器时 我无法再访问它 如果我确实访问 mysite wp admin 则会收到 404 错误 我尝试
  • cassandra 中 TTL 的最大值

    我们可以分配给 TTL 的最大值是多少 在 cassandra 的 java 驱动程序中 TTL 设置为 int 这是否意味着它仅限于 Integer MAX 2 147 483 647 秒 最大 TTL 实际上是 20 年 从org ap
  • as.Date() 不考虑 POSIXct 时区

    好吧 这里有一个微妙的 怪癖 在 r as Date 函数中从带有时区的 POSIXct 转换而来 我想知道这是否是一个错误 gt as POSIXct 2013 03 29 tz Europe London 1 2013 03 29 GM
  • 两个音频信号之间的时间延迟估计

    我有两个不同麦克风对同一信号进行的两段音频录音 例如 以 WAV 格式 但其中之一的录制有延迟 例如几秒钟 在某种波形查看器中查看这些信号时 很容易通过视觉识别这种延迟 即只需发现每个信号中的第一个可见峰值并确保它们具有相同的形状 sour
  • 如何使用 System.IO.Abstraction 模拟 FileStream?

    我正在尝试使用系统 IO 抽象 https github com System IO Abstractions System IO Abstractions项目与 System IO Abstraction TestingHelpers 一
  • 在带有或不带有 try/catch 的 SQL 中使用 Unique Key 作为验证数据完整性的有效方法

    我有一个包含一些列的表 并且我在其中 3 列上设置了唯一键 以确保表中没有重复项 现在我想知道是否使用 try catch 吞下重复项引发的异常并继续更新插入下一行foreach是个好方法吗 try sqlWrite ExecuteNonQ