我是靠谱客的博主 柔弱金针菇,最近开发中收集的这篇文章主要介绍Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效datatable.select中Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

datatable.select中Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效

  1. 首先在datatable.select中使用模糊查询like运算符中一些符号需要转义或者替换(而正常字符串在sql中就能执行),例如:

    like‘%xxx*’后边出现了 * 需要改为[*],因为sql会误认为这个*是一个占位符,编译时候就会出错

  2. datatable.select语句中你需要插入或者更新的字符串中有一些符号或者关键字都需要这样修改,例如:

    1. '.','_','[',‘%'等需要加上'[]',有一个点就是如果字符串中存在 ’ ’ ‘ 单引号需要改为 ' '' '双引号(或者两个单引号),在插入更新数据时候就不会报异常

  3. 当然sql中也有类似的情况,如果你选择了参数化sqlparameter方式,就不需要做这些操作,这种方式有效的避免了sql注入

解决方案

  1. 可以使用Replace("#", "[#]")把字符串中*替换成[*]
  2. 
            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[*]47
                string 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%”无效datatable.select中Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效的全部内容,希望文章能够帮你解决Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效datatable.select中Like 运算符中出错: 字符串模式“%XXXX*XXXX%”无效所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部