在数据表过滤器表达式中转义字符的正确方法

2024-04-15

我想知道是否有一个函数可以正确转义过滤器表达式的字符串文字。例如。:

DataTable.Select(String.Format("[name] = '{0}'", MyName))

如果 MyName 包含 ' 或许多其他关键字符,则会生成异常。这微软文档 http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx表明这些字符应该被正确转义,但是对于如何做到这一点存在一些混乱。

我已尝试将 ' 替换为 ' 以及 ['],如文档中所示,但是查询仍然失败。


通过将单引号 ' 加倍为 '' 来转义它。通过用 [] 换行来转义 * % [ ] 字符。 例如

private string EscapeLikeValue(string value)
{
    StringBuilder sb = new StringBuilder(value.Length);
    for (int i = 0; i < value.Length; i++)
    {
        char c = value[i];
        switch (c)
        {
            case ']':
            case '[':
            case '%':
            case '*':
                sb.Append("[").Append(c).Append("]");
                break;
            case '\'':
                sb.Append("''");
                break;
            default:
                sb.Append(c);
                break;
        }
    }
    return sb.ToString();
}

public DataRow[] SearchTheDataTable(string searchText)
{ 
     return myDataTable.Select("someColumn LIKE '" 
                                 + EscapeLikeValue(searchText) + "'");
} 

谢谢例子在这里 http://www.csharp-examples.net/dataview-rowfilter/

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

在数据表过滤器表达式中转义字符的正确方法 的相关文章

  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • 中继命令和无参数执行方法

    我目前正在学习 WPF 和 MVVM 我想我已经了解了大部分内容及其工作原理 但我在使用 RelayCommand 或 DelegateCommand 时遇到了一些我不明白的问题 我认为这与代表的工作方式有关 请注意 下面的代码目前仅处于测
  • 从 VS.NET 2008 转换到 2010 时 Windows 服务安装项目出现问题

    我正在尝试将解决方案从 VS NET 2008 转换为 2010 该解决方案包括一个 Windows 服务项目和一个安装 Windows 服务的安装项目 我在编译安装项目时遇到问题 我已经尝试按照教程从头开始几次here http msdn
  • 如何暂时暂停实时数据图表的绘制更新

    我想要 暂停 图表的系列更新来完成一些工作 就像我有一个按钮 当我单击它时 它将暂停图表更新 然后当我单击恢复按钮时 它将更新系列中的所有暂停点 我知道关于 chart1 Series SuspendUpdates 但它似乎不适合我 我使用
  • .NET 组件和 COM 组件有什么区别

    NET 组件和 COM 组件之间有什么区别 有时我们使用 NET 组件包含在我们的项目中 有时我们包含 COM 引用 背后的想法是什么 NET 组件是托管代码 内存处理已为您完成 COM http en wikipedia org wiki
  • Sencha Touch 和远程服务器上的身份验证

    我希望收到您关于使用 PhoneGap 和 Sencha Touch 的应用程序以及带有 Active Directory 的 NET 服务器的身份验证机制的反馈 因此 我们需要在移动设备上存储用户凭据 以便用户每次希望使用该应用程序时都不
  • If 语句中 Bool 计算错误

    只是为了好奇 我的代码有这个问题 e被评估为false 我知道通过查看数据库中的数据会得到错误 但 if 语句并不关心这一点 并假设这是真的 并试图抛出异常 有什么想法吗 edit 没有 在第 16 行末尾 价值false是正确的 我已经检
  • .NET 迭代器包装抛出 API

    我有一个带有 API 的类 它允许我请求对象 直到它抛出一个IndexOutOfBoundsException 我想将它包装到一个迭代器中 以便能够编写更清晰的代码 但是 我需要捕获异常以停止迭代 static IEnumerable It
  • 在服务器桌面会话上捕获屏幕

    我开发了一个 GUI 测试框架 可以按计划对我们公司网站进行集成测试 当出现问题时 它会截取桌面等内容 它在专用 Windows Server 2008 上的登录用户上运行 无人值守 问题是在我已断开远程桌面会话连接的桌面上截取屏幕截图 我
  • 标签中的路径显示

    NET 中有没有自动修剪路径字符串的方法 例如 C Documents and Settings nick My Documents Tests demo data demo data emx becomes C Documents dem
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • 使用 ContractNamespace 属性设置 WCF DataContract 命名空间

    在设计我的服务时 我决定要自定义出现在生成的 WSDL 中的名称空间 对于数据合同 我遇到了合约命名空间 http msdn microsoft com en us library system runtime serialization
  • 从同步上下文调用异步方法

    我在代码中通过 HTTP 调用服务 最终使用 HttpClient SendAsync 方法 然后从 WebAPI 控制器操作调用此代码 大多数情况下 它工作得很好 测试通过 但是当我在 IIS 上部署时 我遇到了死锁 因为异步方法调用的调
  • 为什么要加密 ASP.NET 中的查询字符串?

    我正在开发一个用 C ASP NET 编写的 Web 应用程序 该应用程序的原始设计者选择使用加密的查询字符串和Viewstate控制应用程序的 安全 和 状态 在此之前 我来自 GET POST 世界 我没有很好的基础来理解为什么人们会经
  • 大学软件开发:从 Datatel/Colleague 获取数据

    我在北卡罗来纳州的一所社区大学工作 我们最核心的数据存储库是一个名为 Datatel 的软件系统 又名 Colleague 为什么它有两个名字 我不知道 在我们的例子中 底层数据存储是 IBM Unidata 我使用 net 技术进行开发
  • 如何修复“Oracle.EntityFrameworkCore 类型中的方法‘get_Info’没有实现”。

    我正在尝试通过 EW 连接到 Oracle DB 论方法OnConfiguring是错误 System TypeLoadException 程序集 Oracle EntityFrameworkCore Version 2 0 19 1 Cu
  • .NET 远程处理回调

    是否可以通过远程处理传输回调 我想做一些类似的事情myRemoteObject PerformStuff x gt Console WriteLine x 如果没有 我将如何实现等效的功能 Edit 我知道 Remoting 已被 WCF
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 类似于 .NET Framework 2.0 的 MEF(托管可扩展性框架)

    我在自己的项目中使用了 MEF 并且非常喜欢它 这很容易 在弄清楚我们的awkwardAPI模型 它刚刚工作了 现在我需要 NET Framework 2 0 类似的东西 有没有可以在 NET Framework 2 0 下工作的类似项目

随机推荐

  • 如何使用python分离两条高斯曲线?

    I measured the fluorescence intensity of thousands of particles and made the histogram which showed two adjacent gaussia
  • Google Map API 3 从 API 2 的代码中为标记创建不同的颜色

    我在 API 2 中使用了此代码 但找不到 API 3 的等效代码 我想根据严重性为标记创建不同的颜色 因此它们不是静态值 我有如何创建的问题GICON G DEFAULT ICON GSize 和 addOverlay 如果有人告诉我如何
  • Scala:将 Map 应用于元组列表

    非常简单的问题 我想做这样的事情 var arr1 Array Double var arr2 Array Double var arr3 Array Double Double arr1 zip arr2 arr3 foreach x g
  • 检查(从书签)页面是否已加载?

    我正在写一个书签 javascript 这里的问题是用户可以在某些页面完成加载之前和之后调用它 我想确保脚本仅在页面加载完成后运行 怎么做 检查文档是否已加载的一种方法是检查文档就绪状态 http www w3 org TR html5 d
  • Python C-API 访问字符串常量

    我想使用 python 的 C API 在 C 语言中实现我为 python 编写的库 在 python 中 我可以通过声明以下内容在我的模块中声明 常量 RED red Not really a constant I know BLUE
  • 如何使用 stargazer 或 xtable 省略交互?

    是否可以使用omit选项 通常我会将变量名称写入omit c varname 但在互动的情况下我不知道该写什么 有什么提示吗 在其他包中如何解决这个问题 例如xtable documentclass article begin docume
  • Firebase 更改 Android 中子数据信息的布局

    这是我的 firebase 数据结构 当在我的应用程序中打印出来时 它是这样的 我该如何改变这个 所以它不显示逗号 但改为新行 在 Android 中 我只有一段代码可以从子 成分 中检索所有值 那是因为您已将成分存储在数组中 Fireba
  • 想要在激活 iOS 键盘时调整浏览器视口的大小

    在 iOS 网络浏览器 Safari Chrome 等 中 当您单击输入字段并显示键盘时 它会保持视口大小相同 但将其部分向上滑动到视图之外 这使得创建类似应用程序的网站非常困难 因为我正在编写一个聊天应用程序 当键盘显示时 我希望将对话完
  • SQL Server:如何将固定值绑定到列?

    假设我定义了一个 char 列类型 我想严格限制它的值 例如 黑 白 红 蓝 我怎样才能做到这一点 据我所知 这在 Access 中很容易 P 如果只有几个允许的值 那么您可以使用CHECK约束 http msdn microsoft co
  • 使用 Docker Jenkins 容器管道构建 docker 映像时找不到 Docker

    我有一个 Jenkins 作为 docker 容器运行 现在我想使用管道构建 Docker 映像 但 Jenkins 容器总是告诉 Docker 未找到 simple tdd pipeline Running shell script do
  • 射线聚类算法

    我知道显然有点的聚类算法 但我有不同的场景 我有许多光线 它们的起点都在 3D 球体上 并且其方向矢量向内指向球体 一些光线指向 A 点 其他光线指向 B 点等 并带有一些噪声 即光线彼此不完全相交 是否有一种聚类算法可以让我根据光线指向的
  • 将 ReadonlySpan 转换为 int 的最快方法?

    我有一个带有字符串的文件 40070 我读它并将其转换为ReadonlySpan
  • 如何在 Rails 4 中使用关注点

    默认的 Rails 4 项目生成器现在会在控制器和模型下创建目录 concerns 我找到了一些有关如何使用路由问题的解释 但没有找到有关控制器或模型的解释 我很确定这与社区当前的 DCI 趋势 有关 并且愿意尝试一下 问题是 我应该如何使
  • 在探索 Angular2 之前是否有必要先学习 TypeScript? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在尝试学习 AngularJS 2 之前是否有必要先学习 TypeScript 没有必要学习 TypeScript 但我绝对建议您学习
  • C# 中防止子进程显示 shell 窗口

    我正在使用 ffmpeg 编译视频 我想防止它在执行操作时显示控制台 这是我启动 ffmpeg 的方法 ProcessStartInfo si new ProcessStartInfo si Arguments string Format
  • 编写自定义 webpack 解析器

    我计划使用一组更复杂的约定来将资源导入到我的 webpack 项目中 所以我正在尝试编写一个插件 该插件应该重写请求的模块定位器的部分 然后将其传递给解析器瀑布 https webpack js org development how to
  • ghc7.02 上的 runhaskell 错误

    我在 ghc7 0 2 上创建了一个 yesod 应用程序 当我使用命令时runhaskell devel server hs运行应用程序时 发生错误 GHCi runtime linker fatal error I found a du
  • 如何获取两个节点之间的最小路径的权重?

    我有一个Python 中的networkx 图 带有加权边 我想获得两个节点之间的最小路径的权重 目前 我从 nx shortest path 实现中获取最短路径中的节点 然后迭代每对并对每对节点之间的权重求和 shortest path
  • 为什么启用自动刷新后使用空打印?

    我在一段代码中发现了类似的东西 use IO Handle autoflush STDOUT 1 print 打印 的目的是清空可能已满的缓冲区吗 The print强制立即输出缓冲区中的所有文本 来自先前的打印 该代码基本上禁用缓冲并刷新
  • 在数据表过滤器表达式中转义字符的正确方法

    我想知道是否有一个函数可以正确转义过滤器表达式的字符串文字 例如 DataTable Select String Format name 0 MyName 如果 MyName 包含 或许多其他关键字符 则会生成异常 这微软文档 http m