SqlCommand.Parameters的使用
在c#中执行sql语句时,避免会遇到传参的问题。Parameters就是用来做参数化查询,不然很容易被黑客拿到数据。
一、简介
引用自:https://msdn.microsoft.com/ZH-CN/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx
命名空间: System.Data.SqlClient
程序集: System.Data(位于 System.Data.dll)
语法
public SqlParameterCollection Parameters { get; }
属性值
Type: System.Data.SqlClient.SqlParameterCollection
Transact-SQL 语句或存储过程的参数。 默认值为空集合。
二、示例
private static void UpdateDemographics(Int32 customerID,string demoXml, string connectionString) {// Update the demographics for a store, which is stored // in an xml column. string commandText = "UPDATE Sales.Store SET Demographics = @demographics "+ "WHERE CustomerID = @ID;";using (SqlConnection connection = new SqlConnection(connectionString)){SqlCommand command = new SqlCommand(commandText, connection);command.Parameters.Add("@ID", SqlDbType.Int);command.Parameters["@ID"].Value = customerID;// Use AddWithValue to assign Demographics.// SQL Server will implicitly convert strings into XML.command.Parameters.AddWithValue("@demographics", demoXml);try{connection.Open();Int32 rowsAffected = command.ExecuteNonQuery();Console.WriteLine("RowsAffected: {0}", rowsAffected);}catch (Exception ex){Console.WriteLine(ex.Message);}} }
三、常见用法
1. 分页查询
如下定义, 如果在查询数据语句和查询总条数中使用,会在第二处提示被引用的异常
List<SqlParameter> parameters = new List<SqlParameter>() ;
解决方法:
parameters.Select(x => ((ICloneable)x).Clone()).ToArray<object>()
2. Like的用法
原因是传入的参数会被自动加上单引号,直接使用 Title like '%@Title%'会出错
if (!string.IsNullOrEmpty(Title)) { keyCondition += " and (Title like @Title ) ";parameters.Add(new SqlParameter() { ParameterName = "@Title", Value = "%" + Title + "%" }); }
SqlCommand.Parameters的使用相关推荐
- SqlCommand.Parameters转SqlParameter 的输出函数取值为空的坑
经过测试发现 直接循环赋值发现, SqlCommand.Parameters没指定size,但是转sqlparammeter没指定size就会导致字符串为空, 之前也尝试过拷贝,发现内存中size就是 ...
- vb.net 用sqlCommand操作数据库
'连接数据库的方法: Public Shared Function getConnectionString() As String Dim conStr As String = ...
- C#中sqlcommand的用法
CSDN:http://blog.csdn.net/jintougao/article/details/8587661 SqlCommand()方法 SqlCommand cmd = new SqlC ...
- asp.net中关于SQLCommand
SqlCommand类的属性 1.CommandType:获取或设置一个值,该值指示如何解释CommandText属性.如果属性设置为StoredProcedure时,应将CommandText属性设 ...
- oledbCommand.Parameters 图片varbinary存取
varbinay和Image一样,Image也是一样传 private void testzp(){string fileName = @"D:\JTVMData\2017-04\2017- ...
- MC新手入门(五十)------服务器连接 一
服务器是现在网络游戏一个必不可少的部分.例如手机游戏<动友大富翁>.<斗地主>等,这都需要依赖于服务器.下面是一个游戏登录.注册界面,图10-1是游戏登录界面,图10-2是游戏 ...
- 如何在各类控件中输入/输出数据(学习笔记)
一.知识点描述 1.相关控件 ①下拉框(ComboBox) 显示一个可编辑的文本框,其中包含一个允许值下拉列表. ②日历框(DateTimePick) 允许用户选择日期和时间,并以指定的格式显示该日期 ...
- 写有效率的SQL查询(V)
轉自:http://www.netfocus.cn/peoplearticle994.html 先站在应用程序的角度说说它们的不同. 1. 直接拼SQL 就像大家了解的那样,直接拼SQL带来了SQL注 ...
- Asp.Net细节性问题技巧精萃(转载)
1.<%=...%>与<%#... %>的区别: 答:<%=...%>是在程序执行时调用,<%#... %>是在DataBind()方法之后被调用 ...
最新文章
- C语言字符串处理的库函数
- ROS学习汇总(3D摄像头)
- C#调用dll中的函数
- MaxScript Slider/Timer
- Redis-09Redis的基础事务
- 《零基础》MySQL UPDATE 更新(十四)
- Linux 文件或文件夹重命名命令mv
- quartz mysql数据源_配置quartz数据源的三种方式
- js 禁止剪切、复制、粘贴的文本框代码
- [2017浙工大之江学院决赛 H] qwb与学姐(并查集,按秩合并,最小生成树,LCA)...
- Python—常用的几种列表、字典
- 使用koa托管静态资源文件
- Activemq下载与安装
- mysql 游戏背包_01背包问题(完全背包,部分背包)golang实现
- 三进制计算机未来的发展趋势,如果研制出三进制计算机会怎样?
- 有什么软件可以测试近视的度数,在家怎样测试视力度数,手机微信视力检测
- iOS App 签名的原理 App 重签名(三)
- 8086汇编工作环境_[C语言]什么是编辑器和编译器,什么是集成开发环境?编译原理又是什么?
- python教材答案编写函数求成绩平均数_学好Python例题之求成绩平均分
- 10.11_attention