SqlCommand.Parameters.AddWithValue 到底做什么?

2024-07-03

有什么变化SqlCommand.Parameters.AddWithValue()与查询有关吗?

我期望:

  1. 它取代了每一个'字符由'',

  2. 如果参数值是字符串或必须转换为字符串的内容,则它将将该值括起来',例如select * from A where B = @hello会给select * from A where B = 'hello world'.

  3. 如果参数值是像整数这样的“安全”值,它将按原样插入查询中,不带引号,因此select * from A where B = @one会给select * from A where B = 1.

还有其他我不知道的变化吗?


ADO.NET SqlClient 驱动程序将not做任何替换!这是一个常见的误解——它避免了更换任何东西的麻烦。

它的作用是通过参数传递您的查询@param1 ... @paramN直接连接到 SQL Server,以及参数名称/值对的集合。 SQL Server 然后使用以下命令执行这些操作:sp_executesql存储过程

没有进行任何替换,客户端也没有“将完整的 SQL 语句串在一起”——没有类似的事情。如果这就是 ADO.NET 运行时所做的事情,那么它也很容易受到 SQL 注入攻击。

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

SqlCommand.Parameters.AddWithValue 到底做什么? 的相关文章

  • .NET 元组和等于性能

    这是我直到今天才注意到的事情 显然 常用的元组类的 NET 实现 Tuple
  • HttpUtility.HtmlDecode 不解码空格?

    我有这个 string test HttpUtility HtmlDecode http test com Folder1 Folder2 my 20view aspx 当我查看测试时 它仍然有 20 而不是空格 为什么它不解码这个 您正在
  • 用于强制 .NET 应用程序以 32 位运行的环境变量

    有人告诉我 您可以设置一个环境变量来强制 NET 应用程序在 x64 版本的 Windows 上作为 32 位应用程序运行 你知道它是什么 或者知道它的参考资料吗 恐怕我的 google fu 今天让我失望了 或者它不存在 我正在使用 Re
  • 如何将程序集保存到磁盘?

    如何将程序集保存到文件 IE 我的意思不是动态程序集 而是 正常 内存中程序集 Assembly asslist AppDomain CurrentDomain GetAssemblies foreach Assembly ass1 in
  • 我可以中断标有 DebuggerStepThrough 属性的方法吗?

    DebuggerStepThrough 属性告诉调试器跳过该方法 但是如果我真的想单步执行该方法并且不想删除该属性怎么办 有没有办法在 Visual Studio 中做到这一点 按 F12 转到方法定义 然后在单步执行之前在左大括号上放置一
  • 我可以中断标有 DebuggerStepThrough 属性的方法吗?

    DebuggerStepThrough 属性告诉调试器跳过该方法 但是如果我真的想单步执行该方法并且不想删除该属性怎么办 有没有办法在 Visual Studio 中做到这一点 按 F12 转到方法定义 然后在单步执行之前在左大括号上放置一
  • 如何在.Net 中将上传的 RGB 格式图像转换为 CMYK 格式?

    我需要将图像转换并保存为 CMYK 格式 当我上传 RGB 格式的图像时 我需要将其转换为 CMYK 在 Net中可能吗 谢谢 正如其他人提到的 NET 本身并不支持图像色彩空间调整 然而 图像魔术师 http www imagemagic
  • 比较跨多个数据库的存储过程 (SQL Server)

    SQL 大师 我们的架构由多个客户数据库和一个公共代码库组成 当我们部署数据库更改时 必须针对每个数据库运行脚本 由于部署问题 我们的存储过程有时会彼此不同步 我想创建一个脚本来返回这些不匹配的过程 以确保我们在部署后拥有数据库的同步副本
  • 如何从 C# 读取 PowerShell 脚本 stdout 和 stderr

    我正在实现一个自定义 PowerShell 主机 我需要读取 PowerShell 脚本的 stdout 和 stderr 问题是 当我将调用管道返回的对象转换为字符串时 我没有得到标准输出 但是 当我将 out string cmdlet
  • 创建补丁来升级 .NET 应用程序

    我想为我的 NET 应用程序创建一个补丁 要求是 找到安装目录 用新文件覆盖旧文件 重新启动 Windows 服务 我想将更新程序发送给用户 以便他们只需运行它并更新应用程序 我的原始安装程序是使用 Visual Studio 部署项目创建
  • 远程控制内网机器上安装的windows服务

    我在本地 IIS 7 上部署了 Web 应用程序 并将应用程序池配置为在内置 NETWORK SERVICE 帐户下工作 我需要从这个 Web 应用程序检查 Windows 服务的状态 是否已启动 已停止等 我用这样的语句来得到它 publ
  • ADO.NET - 获取数据读取器值的最佳实践是什么?

    只是想知道获取数据读取器值的最佳实践是什么 例如 我一直在这样做 MyValue Dr ColumnName 但注意到其他人在做 MyValue Dr GetString ColumnName 我很想知道第二种方法的好处 仅当您知道列的索引
  • 使用 LINQ 的 IQueryable 左外连接的扩展方法

    我正在尝试使用返回类型实现左外连接扩展方法IQueryable 我写的函数如下 public static IQueryable
  • C# 2.0中使用HashSet,兼容3.5

    我真的很想在我的程序中使用哈希集 使用字典感觉很丑 有一天我可能会开始使用 VS2008 和 Net 3 5 所以我的理想是即使我不能 或者我可以 使用hashsets http msdn microsoft com en us libra
  • WPF DataGrid 行标题可见性错误

    我正在使用 DataGrid 来显示多个字段 其中之一是多行描述 网格显示数据很好 直到我尝试通过设置隐藏标题行HeadersVisibility Column 标题行消失 但当我滚动时 某些随机行的行标题会重新出现 我已将其范围缩小到显示
  • XAML 页面中的 Bindable 值存在问题

    我有一个保龄球回顾示例代码 其中输入了 3 场比赛并总结在系列列中 我遇到的问题是系列列没有按照我的预期进行更新 显然 我做错了什么 但看不到我做错了什么 以下是支持该应用程序的代码
  • 我如何解决 log4net 不断更改 publickeytoken 的问题

    我们有一个 asp net 4 0 项目 它使用几个依赖于 log4net 版本 1 2 10 0 的框架 今天我尝试包含一个依赖于 log4net 版本 1 2 11 0 的新框架 从那时起我就陷入困境 log4net 1 2 10 0
  • 在 C# 中捕获异常

    我有一个简单的添加按钮 ADD Click 代码是 protected void Add Click object sender EventArgs e string strConnectionString ConfigurationMan
  • 如何解决有关 TcpListener: 请使用 TcpListener(IPAddress localaddr, int port) 的警告?

    我创建了一个新表单 在顶部我做了 using System using System Collections Generic using System ComponentModel using System Data using Syste
  • .NET 中是否有任何集合可以防止空条目?

    我特别考虑的是履行一套合同的集合 但我认为这个问题可以适用于任何类型 NET 框架中是否存在可以防止空条目的集合 我想要的具体行为是这样的 var set new HashSet bool added set Add null Consol

随机推荐