将“IN”运算符与 SQL 命令对象和 C# 2.0 结合使用

2023-12-07

我想调用一条sql语句,例如:

Select * From Table Where Column in ('value1', 'value2', 'value3')

是否像将命令参数的值设置为等于“那么简单?('value1', 'value2', 'value3')"?


@Charles:你正在朝着正确的方向前进,但我们使用参数化查询主要是为了防止 SQL 注入。输入“外部”值(params string[] args)在查询中硬编码是自找麻烦。您可以迭代参数,但仍然必须使用如下参数:

   string[] values = new [] {"value1", "value2", "value3", "value4"};
   StringBuilder query = new StringBuilder("Select * From Table Where Column in (");
   SqlCommand cmd = new SqlCommand();
   cmd.Connection = new SqlConnection("Your connection string");
   for(int i = 0; i < columns.Length; i++)
   {
       string arg = string.Format("@arg{0}", i);
       cmd.Parameters.AddwithValue(arg, SanatizeSqlString(columns[i]));
       sb.AppendFormat("{0}, ", arg);
   }
   sb = sb.Remove(sb.Length -2, 2);
   sb.Append(")");
   cmd.CommandText = sb.ToString();

这样你最终会得到如下查询:

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

将“IN”运算符与 SQL 命令对象和 C# 2.0 结合使用 的相关文章

  • JDBC 插入错误

    我正在尝试使用 jdbc 将一些数据插入到我的数据库中 我使用了正确的表 数据库名称和参数 一切都经过检查 Code public static void main String args throws IOException ClassN
  • 查找每个客户组的最新帐户

    我有一个包含客户信息的表 每个客户都会分配一个客户 ID 他们的 SSN 他们在开设更多帐户时会保留该 ID 两个客户可能使用同一个帐户 每个客户都有自己的 ID 帐号不按日期排序 我想找到每个客户或客户组的最新帐户 如果两个客户曾经一起使
  • SQL查询获取列的精度值

    我需要一个 SQL 查询来获取某些列的精度值 我主要关心十进制类型列 并且我需要相同的精度值 我意识到在某些版本和数据库服务器供应商中可以这样做 如果您能列出其中的一些 那就太好了 对于 SQL 服务器 select precision f
  • 存储过程 EXEC 与 sp_executesql 的区别?

    我写了两个存储过程 其中一个是sp executesql而其他没有 sp executesql 两者都正确执行相同的结果 我不明白两者之间有什么区别 EXEC SQL 与 EXEC sp executesql SQL N eStatus v
  • 执行计划中是否考虑了功能?

    当查询在 SELECT 或 WHERE 子句中包含 PL SQL 函数 用户定义函数 时 如何生成执行计划 它是否也计算这些函数的成本并将其显示在执行计划中 或者这些函数只是被忽略 在此先感谢您的帮助 用户生成的函数在 SELECT 或 W
  • SQL查询3个表,无法得到所需的结果

    列出所有已售出的作品以及艺术家 订购日期和发货日期 SELECT title artist order date ship date FROM items orders orderline WHERE orders order id ord
  • 如何从 tarantool 中选择有限数量的记录,就像 SQL 中的 SELECT LIMIT 一样?

    我想在 Tarantool 空间上执行选择 使用过滤和限制结果 就像我可以使用简单的 SQL 查询一样 SELECT FROM users WHERE age gt 33 LIMIT 1 我怎样才能做到这一点 可以使用 Lua 和 SQL
  • Oracle 函数编译成功,但在执行 PLS-00221 时抛出错误:不是过程或未定义

    我有简单的oracle功能 create or replace function abs test func test in in number return number is test out number BEGIN test out
  • 查找缺失值

    我有一个表 有 2 个重要的列 DocEntry WebId 样本数据就像 DocEntry WebId 1 S001 2 S002 3 S003 4 S005 现在我们可以注意到 在 WebId 列中 S004 丢失了 我们如何通过查询找
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • 从 Visual Studio 调试 SQL Server 2005 中的存储过程?

    我在这里和其他地方看到很多令人沮丧的问题 但没有明确的答案 我试图让存储过程进行调试 但没有成功 客户端 VS2005或VS2008 两者都不起作用 当我从存储过程上下文菜单中选择 步入存储过程 时 我在调试窗口中看到 已被用户取消 这就是
  • 我应该如何优化 .net 代码中对一个简单存储过程的多次调用?

    我有一个非常简单的存储过程 create procedure spFoo v varchar 50 as insert into tbFoo select v 我有 50 个值要插入到 tbFoo 中 这意味着在我的 c 代码中我调用 sp
  • 如何编辑表以启用级联删除?

    我有一个代表用户的表 当用户被删除时我得到 DELETE 语句与 REFERENCE 约束冲突 显然 CASCADE DELETE在SQL Server中并不像我想象的那么容易 需要将选项添加到表中 问题是 我不知道如何添加CASCADE
  • 如何从表中选择层次结构中的最低级别

    我有一个具有父 子关系的表 Table A Column Id int Column Parent Id int Column Description text 一组示例数据如下 999 NULL Corp 998 999 Div1 997
  • 左连接,左表中没有重复行

    请看下面的查询 tbl 目录 Content Id Content Title Content Text 10002 New case Study New case Study 10003 New case Study New case S
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • 如何在 SQL 中编写 where 子句来按一天中的时间过滤 DATETIME 列?

    我有带有 DATETIME 列时间戳的数据 我想将其过滤到 DATETIME 介于上午 9 30 到下午 5 30 之间的任意一天的记录集 最好的方法是什么 更新 更改是因为我需要精确到分钟 而不仅仅是小时 对于那个很抱歉 您始终可以将其编
  • 获取 SQL 表上未使用的唯一值

    我有一个表 其中有一列描述数字 ID 该 ID 对于所有行都是唯一的 但它不是主键 数字 ID 是有限的 假设答案可以是从 1 到 10 SELECT ID FROM TABLE ID 1 2 5 我必须 通过 UI 向用户呈现未使用的值
  • 更新查询时 ios 中出现“数据库锁定”错误

    我正在使用下面的代码更新查询 using sqlite 但我越来越 database is locked error 我尝试搜索一些 SO 链接 建议关闭数据库 但我再次执行此操作时遇到相同的错误 我已经提到过代码中出现错误的地方 cons
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐

  • 创建实现 ContainerAwareInterface 的服务

    当我扩展 ContainerAware 或实现 ContainerAwareInterface 时 该服务不会调用 setContainer class CustomService implements ContainerAwareInte
  • 将字符串参数传递到点击绑定中,同时保留 Knockoutjs 中的默认参数

    我想将参数传递给单击时调用的函数 同时保留默认参数 问题出在啤酒花部分 我试着做remove
  • Python 的 itertools.product() 的效率

    所以我正在寻找不同的方法来计算笛卡尔积n数组 我遇到了使用以下代码的相当优雅的解决方案 此处为 SO import itertools for array in itertools product arrays print array 看着
  • XSL:列表分为几列

    请帮帮我 有一个节点列表
  • Android - 动态添加片段

    我浏览了互联网 只找到了 Android 片段的示例 它们被放置在适当的位置 比如其中两个 一个作为列表 第二个是显示列表中所选项目的详细信息 我的目标是拥有经典的 android 活动 并且我希望能够使用特定的 GUI 动态添加预先准备的
  • 3rd 方库和 Py2exe

    我将如何使用 py2exe 将 Beautiful soup 与我的代码一起捆绑到 exe 中 我现在用于 setup py 的代码是 from distutils core import setup import py2exe equiv
  • 如何让路线绘制更加高效?

    这是我用来绘制路线的代码 当我有 1000 个点时 路线会严重减慢用户界面 也许有人可以提供一个代码片段或一个链接来解释如何更有效地绘制路线 我知道解决这个问题的一种方法是缓存位图路径 但不知道该怎么做 public class PathO
  • 获取塔 GSM 位置 lat lng

    我想知道一种方法或方法来查找手机所连接的小区的位置 GSM 小区 这是我的课 package com example signal import java io File import java io FileOutputStream im
  • pageinit 上的 jQuery 移动弹出窗口

    我希望页面加载后立即打开一个弹出窗口 但似乎被旋转轮卡住了 这是一个小提琴手来演示该问题 任何帮助将不胜感激 http jsfiddle net Ohpyx UGfXG 我正在使用的代码是 document live pageinit fu
  • 使用 Groovy 连接字段后,CSV 上出现引号

    我正在使用 groovy 连接 CSV 中的两个字段 它工作正常 只是连接字段显示有引号 有什么办法可以解决这个问题吗 ant mkdir dir target new File target UpsertCheckDeals csv wi
  • Tensorflow 如何处理一列中具有多个输入的分类特征?

    例如我有一个数据如下csv format csv col0 col1 col2 col3 1 A E A C 3 0 B D F 2 2 C 2 用逗号分隔的每一列代表一个特征 通常 一项功能是独热的 例如col0 col1 col3 但在
  • Google Cloud Functions - 通过 HTTP 上传到 Google Cloud Storage

    我正在尝试使用 Google Cloud Function 处理文件上传 该函数使用 Busboy 解析多部分表单数据 然后上传到 Google Cloud Storage 我不断收到ERROR Error ENOENT no such f
  • 如何使用 ProgressMonitorInputStream

    我知道我一定错过了一些非常明显的东西 但是每当我在复制文件时尝试使用进度监视器输入流时 我永远不会弹出进度对话框 我看到的示例除了将输入流包装在 ProgressMonitorInputStream 中之外似乎没有做太多事情 文档说 这将创
  • 基于文件的进程通信的 Java 文件锁定机制

    我有两个 java 进程 JAR 一个每 1 分钟写入一个文本文件 另一个正在读取该文件并调用 Web 服务将数据存储在数据库中 有什么办法可以在文件处于写入模式时锁定文件吗 我观察到 当wvdial我认为正在拨打调制解调器 它会在 var
  • 在 C# 中为 p/invoke 创建基本的 C++ .dll

    我是一名 C 程序员 不幸的是 由于年龄和经验的限制 我在学习中没有机会经历 C 编程时代 其中很多内容对我来说是神秘而新鲜的 并不是在这里争论学习这些知识的重要性 而是我需要一些帮助来解决这本应该是一件微不足道的事情 PROBLEM 我需
  • 405 Net::HTTP 请求上不允许使用方法 [ruby on Rails]

    我正在尝试使用以下代码验证是否存在远程网址 endpoint uri URI parse endpoint url endpoint http Net HTTP new endpoint uri host endpoint uri port
  • 将 Django 数据库从 SQLite 迁移到 MySQL 的最佳方法是什么?

    我需要将我的数据库从 sqlite 迁移到 mysql 而各种工具 脚本对我来说太多了 无法轻松找到最安全 最优雅的解决方案 这对我来说似乎不错http djangosnippets org snippets 14 但似乎距离更新已经过去了
  • Java 代理开发框架 - Eclipse 和 Maven 集成

    我创建了一个 Maven 项目JADE框架作为依赖项 但该框架需要与普通 java 应用程序不同的命令来执行 jar Build javac classpath
  • 获取 Oracle 11g 中的实际执行计划

    我读过这个post and this优秀的文章 我的问题是 如何获得acutualOracle 11g 中的执行计划 withoutsys权限和DBA权限 您可以将我的案例视为只读用户 I m able to get the explain
  • 将“IN”运算符与 SQL 命令对象和 C# 2.0 结合使用

    我想调用一条sql语句 例如 Select From Table Where Column in value1 value2 value3 是否像将命令参数的值设置为等于 那么简单 value1 value2 value3 Charles