C# 平时碰见的问题【4】

1. 模糊查询 like的参数化写法

string keyword="value"; // 要模糊匹配的值

错误示范:    

      sql:    string strSql="select * from [Table]  where [Field] like %@Field%";

      参数: System.Data.SqlClient.SqlParameter[] parms = new[] {

              new System.Data.SqlClient.SqlParameter("@Field",System.Data.SqlDbType.VarChar,400)
              };
          parms[0].Value = keyWord ;

输出:    ado.net 给我们输出的参数 SQL语句 还是原原本本的 select * from [Table]  where [Field] like %@Field%  SQL语句错误

解决办法(1):

      sql :   string strSql="select * from [Table]  where [Field] like ‘%‘+@Field+‘%‘ "

      这样ado.net 就能将参数正确的输入了

解决办法(2):

      sql:    string strSql="select * from [Table]  where [Field] like @Field";      

      参数: System.Data.SqlClient.SqlParameter[] parms = new[] {

              new System.Data.SqlClient.SqlParameter("@Field",System.Data.SqlDbType.VarChar,400)
              };
          parms[0].Value = "%"+keyWord +"%";

分析:

      我们期望最后传输到数据库的 like语句应该是: select * from [Table] like [Field] like ‘%value%‘ ;

      直接%@Field%,污染了ado.net的参数标示@符号导致无法正确替换参数;

      方法一在sql语句中拼接字符串的方式来得到如 ‘%value%‘的值;  注:sql语句中 字符串用单引号来作为字符串的起始符, 而sql server中以 + 号 拼接字符串.所以‘%value%‘等同于 ‘%‘+value‘%‘,

      方法二则直接在赋值语句中加入模糊匹配符;

      

时间: 2024-10-18 00:22:13

C# 平时碰见的问题【4】的相关文章

C# 平时碰见的问题【2】

问题1 修改命名空间后 .ashx 类型创建失败 [情景] 在调整前后台项目结构的时候,修改了默认命名空间(XXX.Admin 修改成XXX.Web),结果调试的时候发现XXX.Admin.Ajax.Verify_code.ashx 类型创建失败 ,明明修改了,找了半天也没有找到原因,后求助qq群 才知道.ashx 文件还有右键[查看标记]这么一个玩意. 如下: <%@ WebHandler Language="C#" CodeBehind="Verify_code.a

C# 平时碰见的问题【6】

EF Code First 设置复合主键的方法 除了单纯多对多的关系表外, 我们可能在关系表上加其他的属性: 比如[订单行] 对应的[订单]和[商品]就需要多一个数量字段 而又不想在这个[订单行]表上加上没什么实际意义的独立主键 本以为FluentApi调用2次HasKey(property)就可以将2个外键字段弄成复合主键,结果发现只有后面设置的主键才起作用,求助q群得如下注解方式 既然可以用注解的方式实现,那么FluentApi的方式也肯定是可以的: 发现更简单: PS: FluentAPI

C# 平时碰见的问题【5】

vs按F5启动调试,项目不会编译的解决办法 工具 -> 选项 -> 项目和解决方案 -> 运行时, 当项目过期(下拉框) -> 不要选[从不生成] 附英文版的:

Android Studio2.1版本后使用虚拟机碰见的问题总结以及其他问题

一.androidstudio的sdk配置问题 如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android SDK的缘故.这时候一般有两种做法: 然后再启动程序就会打开项目向导界面,这个时候如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android S

六种查找文档的方法及平时要做哪些优化?

能否较快找到文档和我们能回想起的关键字等有关, 也和平时是否根据查找方法特点所作的准备有关. 更多的查找方法,可以更好的利用我们能回想起来的内容,去找到. 是的,有的时连找到都是困难的,这个时候尝试更多的查找手段,是不错的选择. 下面介绍几种常用的查找方法, 及平时我们应该如何根据其特点作些准备, 以便时间久了后,我们还能较快的找到. 常用的查找方法有: 1.按文件名查找 2.按文件夹展开查找 3.按文档的全文查找 4.按标签查找 5.按日期查找 6.按公式查找 下述均以"文档大师"软

那些平时可能用不上,跳槽很有用的框架

古人有云,平时不烧香,临时抱佛脚.很好地说明了一个问题:打仗要打有准备的战,要打有把握的战.对于不少人来说,跳槽其实也是打仗,而且要过五关斩六将.所以现在我稍稍地总结了一下,前端跳槽时,经常会被问到的框架. css方面: 1.sass,less和stylus(这三个框架其实平时也常常能用得上,但是跳槽很多都问.) 这些css预处理器,也算是火了好些年了.它们在项目中扩展了 CSS3,增加了规则.变量.混入.选择器.继承等等特性.还能生成良好格式化的 CSS 代码,易于组织和维护. 面试官喜欢问你

平时用到的快捷键积累

微软+R :打开命令行窗口 ---- services.msc: 进入系统服务 继续完善中-- 平时用到的快捷键积累,布布扣,bubuko.com

这些HTML、CSS知识点,面试和平时开发都需要 No8-No9

系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置.设置背景.数据列表) 这些HTML.CSS知识点,面试和平时开发都需要 No8-No9(知识点:媒体操作.构建表单) No8.媒体操作 1.增加图片 (1)img元素:自包含元素,不能封装其他任何元素.正确写法是<img>,而不是<img/>或者<img>&l

获取URL传进来的参数,法定节假日或者平时周末(排除补假)显示、隐藏电话号码

http://www.4008000000.com/m/cpchexian/campaign/waimei/IBhuokechanggui-weizhang.shtml http://www.4008000000.com/m/cpchexian/campaign/waimei/IBhuokechanggui-ershouche.shtml http://www.4008000000.com/m/cpchexian/campaign/waimei/IBhuokechanggui-xinche.sh