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'%',
方法二则直接在赋值语句中加入模糊匹配符;
C# 平时碰见的问题【4】的更多相关文章
- C# 平时碰见的问题【6】
EF Code First 设置复合主键的方法 除了单纯多对多的关系表外, 我们可能在关系表上加其他的属性: 比如[订单行] 对应的[订单]和[商品]就需要多一个数量字段 而又不想在这个[订单行]表上 ...
- C# 平时碰见的问题【5】
vs按F5启动调试,项目不会编译的解决办法 工具 -> 选项 -> 项目和解决方案 -> 运行时, 当项目过期(下拉框) -> 不要选[从不生成] 附英文版的:
- C# 平时碰见的问题【3】
今天发现一个问题纳闷了半个小时, 需求是处理project文件里边的数据内容,其中需要判断任务名称不存在重复; 在测试的时候弄了两行一样的任务,如预想: 任务[xxx]重复 然后删掉重复的任务行,继续 ...
- C# 平时碰见的问题【2】
问题1 修改命名空间后 .ashx 类型创建失败 [情景] 在调整前后台项目结构的时候,修改了默认命名空间(XXX.Admin 修改成XXX.Web),结果调试的时候发现XXX.Admin.Ajax. ...
- C# 平时碰见的问题【1】
1. SqlBulkCopy 可以利用这个类实现快速大批量新增数据的效果, 但在使用过程中发现了一个问题: 无法将数据源中的DateTime类型转换成数据库中的int类型 看起来就是数据列不对应导致的 ...
- Android使用静默安装时碰见的问题
升级时碰见的异常 private void installPackage(String appName,final File apk) { if (!apk.exists()) { setHasNew ...
- 使用karma测试平时写的小demo(arguments为例)
有人说前端自动化测试非常困难,我觉得确实如此.在项目中,我个人也不放心写的测试,还是要手动测试.但是我们平时写demo学习时,完全可以使用自动化测试. 传统demo 1,新建一个html 2,写入js ...
- CSS3动画几个平时没注意的属性
一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...
- 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4
系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...
随机推荐
- Sqool与kettle开源的ETL工具
现在的ETL都是基于管道的模式(数据流)运行,比较有名的有 TaskCTL ========================================== 数据抽取的开源工具 一个是RDBMS ...
- Python实现顺时钟回形矩阵
无意间在网上看到了一个面试题是,写出一个回形矩阵.实现的效果大致如下: [ 1, 2, 3, 4, 5] [16, 17, 18, 19, 6] [15, 24, 25, 20, 7] [ ...
- Fiddler录制jmeter脚本,干货分享
我们知道以前jmeter的脚本来源有三个,手动书写.badboy录制.自带的录制功能(jmeter3.0该功能还比较好),目前我们又多了一个fiddler生成,自上次分享出来fiddler ...
- 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题
这些提示的问题完全没有必要去理会,因为一般情况下你点击本地windows调试,会报出这样问题很正常. 网上一些介绍什么要去选项卡栏勾选window连接器什么鬼,不建议用该方式,一旦你勾选那个方式虽然不 ...
- OpenGL: 渲染管线理论
http://blog.csdn.net/augusdi/article/details/19934463 学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解. 首先要知 ...
- oracle 索引失效原因
转自 http://www.cnblogs.com/orientsun/archive/2012/07/05/2577351.html Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时 ...
- hive数据导出和常用操作
导出到本地文件 insert overwrite local directory '/home/hadoop'select * from test1; 导出到hdfs insert overwrite ...
- mongodb分组,的两种方式,先记一下
using MongoDB.Bson; using MongoDB.Driver; using MongoDB.Driver.Builders; using NationalUnion.AdGalle ...
- 华为OJ平台——查找组成一个偶数最接近的两个素数
import java.util.Scanner; /** * 问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况, * 本题目要求输出组成指定偶数的两个素数差值最小 ...
- js 打开PDF
用插件打开PDF的一个超连接 但是谷歌了很久 ,发现了一个很好的方法 就是借google 来打开一个PDF ,而不下载PDF: _yourID.setAttribute('onclick'," ...