Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效
datatable.select中Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效
首先在datatable.select中使用模糊查询like运算符中一些符号需要转义或者替换(而正常字符串在sql中就能执行),例如:
like‘%xxx*’后边出现了 * 需要改为[*],因为sql会误认为这个*是一个占位符,编译时候就会出错
datatable.select语句中你需要插入或者更新的字符串中有一些符号或者关键字都需要这样修改,例如:
'.','_','[',‘%'等需要加上'[]',有一个点就是如果字符串中存在 ’ ’ ‘ 单引号需要改为 ' '' '双引号(或者两个单引号),在插入更新数据时候就不会报异常
当然sql中也有类似的情况,如果你选择了参数化sqlparameter方式,就不需要做这些操作,这种方式有效的避免了sql注入
解决方案
- 可以使用Replace("#", "[#]")把字符串中*替换成[*]
public static void AutoComplete(ComboBox cb, DataTable dt, string filed){if (cb.Text == ""){return;}cb.Items.Clear();cb.Items.Add("");//C111-NM-CA+PMMA-0.5+5+2+0.5*47//C111-NM-CA+PMMA-0.5+5+2+0.5[*]47string condition = cb.Text.Replace("*", "[*]");condition = cb.Text.Replace("#", "[#]");condition = cb.Text.Replace("%", "[%]");DataRow[] drs = dt.Select(filed + @" like '%" + condition.Replace("*", "[*]").Replace("#", "[#]").Replace("%", "[%]") + "%'");List<string> item_list = new List<string>();foreach (DataRow dr in drs){item_list.Add(dr[filed].ToString());}cb.Items.AddRange(item_list.ToArray());cb.SelectionStart = cb.Text.Length;cb.Cursor = Cursors.Hand;cb.DroppedDown = true;}
Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效相关推荐
- CO13 订单取消确认报错:“在为订单XXXX 确定实际成本中出错”处理分析
用户再操作CO13时报了一个错误:在为订单XXXX 确定实际成本中出错. 看到这个错误以为是财务同时没有发布成本导致的.然后我也操作了一下发现了一些过账中的错误. 原来是冲销这个工单的账期是在前几个月 ...
- pycharm中dgl安装出错(FileNotFoundError: Could not find module ‘E:\XXXX\XXXX\lib\site-packages\dgl\dgl.dl)
dgl安装报错的解决方案--必解决! 1.论文要求版本+安装 2.所遇的所有问题 3.最终解决办法 ) 1.论文要求版本+安装 (1)论文代码要求: dgl的版本应为:dgl-cuda10.1=0.4 ...
- pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe)
pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe) 目录
- pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe)
pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe) 目录
- R语言str_extract函数从字符串中抽取匹配模式的字符串
R语言str_extract函数从字符串中抽取匹配模式的字符串 目录 R语言str_extract函数从字符串中抽取匹配模式的字符串 #导入包和库
- R语言使用str_locate函数和str_locate_all函数来定位特定字符串或者字符串模式在字符串中的位置:str_locate函数第一个位置、str_locate_all函数定位所有位置
R语言使用str_locate函数和str_locate_all函数来定位特定字符串或者字符串模式在字符串中的位置:str_locate函数第一个位置.str_locate_all函数定位所有位置 目 ...
- python中的模运算符_Python中的字符串模运算符与format函数
如果你在网上搜索Python中如何进行字符串插值(string interpolation),那么你很可能会发现一些留言和旧文档中说字符串模运算符(%)以后会被废弃,并移除出标准库.但是这完全是杞人忧 ...
- MySQl笔记8:把good表中商品名为‘诺基亚xxxx‘的商品,改为‘HTCxxxx‘
把good表中商品名为'诺基亚xxxx'的商品,改为'HTCxxxx' 提示:大胆的把列看成变量,参与运算,甚至调用函数来处理 . substring(),concat()
- instanceof运算符_Java 8中的instanceof运算符和访客模式替换
instanceof运算符 我有一个梦想,不再需要操作员和垂头丧气的instanceof ,却没有访客模式的笨拙和冗长. 所以我想出了以下DSL语法: Object msg = //...whenTy ...
最新文章
- MF训练套件(1):如何去除应用标题?
- 章节六、2-异常---运行时异常
- python文件图标变成小电脑_手把手教你给Python程序写图形界面,并且打包成exe文件-exe文件...
- MyFlash——美团点评的开源MySQL闪回工具
- equation在c语言中是什么意思,MathType出现此对象创建于Equation中的问题怎么办
- Python简记--函数
- python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...
- 认识RabbitMQ交换机模型
- 洛谷——P1001 A+B Problem
- 常用JQuery插件整理 1
- MySQL主从复制故障1595报错【原创】
- cocos2dx 组件
- 异数OS谈发展国产操作系统的问题
- 用javascript实现一个打乱文字小程序
- mentohust for linux,GitHub - xdlinux/mentohust_xidian: A ruijie client for xidian university
- python读取桌面上的文件夹怎么加密_python给文件夹加密 怎么样给python文件加密...
- 语义错误和语法错误的区别
- 史上最全的程序员求职渠道总结
- 三个重要的事件来看软件测试的重要性和软件测试的行情
- java满天星星代码_纯Java代码实现流星划过天空