当我运行 C# 参数化查询时,它超时。具有硬编码参数的相同查询工作正常

2024-04-30

我想获取文本列包含字符串过滤器的所有 ID。

当我运行此参数化查询时,它超时:

SqlCommand cmd =
new SqlCommand("SELECT ID FROM TableName WHERE Text LIKE @filter", conn);
 if (filter != null)
 {
    cmd.Parameters.AddWithValue("@filter", "%" + filter + "%");
    SqlDataReader reader;
    reader = cmd.ExecuteReader(); //Locks up here!
 }

当我运行相同的代码但使用硬编码的搜索参数时,它会及时返回我想要的结果:

 SqlCommand cmd = 
 new SqlCommand("SELECT ID FROM TableName WHERE Text LIKE '%patternToMatch%'", conn);
 SqlDataReader reader;
 reader = cmd.ExecuteReader();

这两个查询有何不同?我认为参数化所做的不仅仅是简单的文本替换。

澄清:我正在与 Microsoft SQL Server 2012 服务器交谈。

新信息:仅当搜索过滤器长度超过 6 个字符时才会超时。

编辑:解决了!我将搜索设置为存储过程:

CREATE PROCEDURE TextSearch 
@filter varchar(MAX) = ''
AS
BEGIN
    SET NOCOUNT ON;
    SELECT DISTINCT ID FROM TableName WHERE [Text] LIKE '%' + @filter + '%'
END
GO

当使用带有 like 运算符的参数化查询时,需要将通配符用单引号引起来:

new SqlCommand("SELECT ID FROM TableName WHERE Text LIKE '%' + @filter + '%' ", conn);

然后像往常一样添加参数即可:

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

当我运行 C# 参数化查询时,它超时。具有硬编码参数的相同查询工作正常 的相关文章

  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • C++ 将联合强制转换为其成员类型之一

    以下对我来说似乎完全符合逻辑 但不是有效的 C 联合不能隐式转换为其成员类型之一 有人知道为什么不这样做的充分理由吗 union u int i char c function f int i int main u v v i 6 f v
  • C# 编译器数字文字

    有谁知道 C 编译器数字文字修饰符的完整列表 默认情况下 声明 0 使其成为 Int32 声明 0 0 使其成为 Double 我可以在末尾使用文字修饰符 f 来确保某些内容被视为 Single 例如像这样 var x 0 x is Int
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • EnumDisplayDevices 与 WMI Win32_DesktopMonitor,如何检测活动监视器?

    对于我当前的 C 项目 我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串 研究指出了两种选择 使用 WMI 并查询 Win32 DesktopMonitor 以获取所有活动监视器 使用 PNPDeviceID 来唯一
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • C 语言中的 Alpha 混合 2 RGBA 颜色[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速进行阿尔法混合 https stackoverflow com questions 1102692 how to do alpha blend fast 对 2 个 RGBA 整数 颜色进行
  • Linq.Select() 中的嵌套表达式方法调用

    I use Select i gt new T 每次手动点击数据库后将我的实体对象转换为 DTO 对象 以下是一些示例实体和 DTOS 用户实体 public partial class User public int Id get set
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • 这种尺寸对齐是如何工作的

    对于所提供的评论 我无法理解以下代码 这段代码的作用是什么 以及等效的代码是什么8 aligned segment size must be 4 aligned attr gt options ssize 3 Here ssize is o
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的

随机推荐

  • 在 ios 应用程序中将 UIImagePickerController 锁定为纵向模式

    在我的 IOS 应用程序中 当我打开相机时 我已将图像放置在相机视图上 在肖像模式下看起来不错 但当它变成横向模式时 看起来就有些奇怪了 所以我想锁定UIImagePickerController在肖像模式下 以下是我的 ui 图像选择器控
  • 数据库中的编码 HTML 返回页面

    我在数据库中有以下编码 lt p gt Content lt span style quot color ffffff quot gt lt span style quot background color ff0000 quot gt 1
  • Froala 添加自定义预编码按钮

    我正在尝试创建一个代码按钮Froala http editor froala com 编辑器基本上可以通过按执行与此处相同的操作CNTRL K 现在我想我有两个选择 第一个是编辑 froala editor js 文件 因为 Froala
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • PHP 包含语义

    我正在尝试找出如何解释PHP s include构造 http www php net manual en function include php 例如是否是文本包含 何时评估等 像往常一样 文档相当非正式和模糊 根据实验 它似乎是语法糖
  • 如何为 CSS 规则选择元素的曾孙?

    给定这个 HTML 我该如何选择rt block改变CSS仅当嵌套在 rt header 中时如图所示 div div class rt container div class rt grid 6 rt alpha div class rt
  • 适当使用静态方法

    从概念上讲 当方法仅接受输入并将输入重新格式化为输出时 使用静态方法 C 是否合适 例如 public static string FormatString string inputString return some formatting
  • 为什么我的 UIActivityIndi​​catorView 不会停止动画?

    我正在尝试从我的应用程序代理管理活动指示器 这样我的任何视图都可以放置指示器 因此 我将其作为子视图添加到 窗口 并启动 停止 如下所示 void didStartActivity if activityIndicator nil acti
  • SPSS 语法:如何从活动数据集中生成所有变量的 var_list?

    通常 PSPP SPSS 语法文档 example http www gnu org software pspp manual html node DESCRIPTIVES html 建议我必须传递一个变量列表 VARIABLES var
  • MouseAdapter:它使用哪种模式?

    我已经找到了很好的资源 这些资源告诉我 Java API 中的 MouseAdapter 没有使用适配器模式 问题是 MouseAdapter 是否实现了某种模式 我知道它的作用 它为 MouseListener 接口创建了一个具体的类 因
  • 如何设置上一个/下一个箭头按钮的样式?

    GOAL 我一直在尝试修改slick css以适应我的网站所需的风格 我拿到slick css from here http kenwheeler github io slick Now 我想让箭头 左 右 更大 对于图标 我想使用没有的图
  • 如何使用oembed标签实现丰富的pins

    我需要实现 pinterest 提供的丰富的引脚 http developers pinterest com rich pins http developers pinterest com rich pins 推荐的方法之一是使用 oemb
  • TFS Pending Changes 能否像 SourceGear Vault 一样显示真正更改的文件?

    我一直在使用 SourceGearVault 进行一些个人项目 并使用 Team Foundation Server 进行工作项目 TFS 缺少的一件事是 Vault 在其签入对话框窗口中具有的一项简单功能 在 Vault 客户端中 您可以
  • 组织 GUI 代码

    我的问题有两个部分 有没有人对网络上的一些文档有任何关于如何编写易于阅读 编写和维护的 GUI 代码的提示或参考 Example 我发现我的 GUI 表单变得越广泛 我最终会得到一长串相当短的事件处理程序方法 如果我尝试添加任何私有辅助方法
  • java中带有二维键的映射

    我想要一个在 Java 中由两个键索引的映射 在其中使用两个键放置和检索值的映射 需要明确的是 我正在寻找以下行为 map put key1 key2 value map get key1 key2 returns value map ge
  • 阅读器关闭时调用元数据的尝试无效?

    我正在数据读取器上运行 if else 语句来查询表数据并激活 取消激活页面上的某些控件 我实现了一个 using 语句来在关闭块时自动关闭连接和阅读器 但我仍然在每个 if else 语句上收到阅读器已关闭错误 少了什么东西 代码如下 s
  • 如何更改每种语言的 vim 设置?

    我将 vim 与许多不同的语言 C C Java shell 等 一起使用 我知道 vim 已经为每种语言预设了设置 但我想根据我个人的喜好更改每种语言的设置 我已经有一个带有设置的 vimrc 文件 但我想要更多文件来根据我使用的语言声明
  • Dropzone 的“勾号”标记没有显示?

    I have been using dropzone to upload the image file on my localhost Everything is working fine file is being uploaded an
  • 当新版本的 pod 可用时,“pod update”会覆盖我的代码更改吗?

    我已使用 cocoapods 将 MKStoreKit 版本 4 99 添加到我的项目中 我的 Podfile 包含 platform ios 6 0 pod MKStoreKit gt 4 99 MKStoreKit 有一个名为 MKSt
  • 当我运行 C# 参数化查询时,它超时。具有硬编码参数的相同查询工作正常

    我想获取文本列包含字符串过滤器的所有 ID 当我运行此参数化查询时 它超时 SqlCommand cmd new SqlCommand SELECT ID FROM TableName WHERE Text LIKE filter conn