在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的使用相关推荐

  1. SqlCommand.Parameters转SqlParameter 的输出函数取值为空的坑

    经过测试发现 直接循环赋值发现, SqlCommand.Parameters没指定size,但是转sqlparammeter没指定size就会导致字符串为空, 之前也尝试过拷贝,发现内存中size就是 ...

  2. vb.net 用sqlCommand操作数据库

    '连接数据库的方法: Public Shared Function getConnectionString() As String         Dim conStr As String =    ...

  3. C#中sqlcommand的用法

    CSDN:http://blog.csdn.net/jintougao/article/details/8587661 SqlCommand()方法 SqlCommand cmd = new SqlC ...

  4. asp.net中关于SQLCommand

    SqlCommand类的属性 1.CommandType:获取或设置一个值,该值指示如何解释CommandText属性.如果属性设置为StoredProcedure时,应将CommandText属性设 ...

  5. oledbCommand.Parameters 图片varbinary存取

    varbinay和Image一样,Image也是一样传 private void testzp(){string fileName = @"D:\JTVMData\2017-04\2017- ...

  6. MC新手入门(五十)------服务器连接 一

    服务器是现在网络游戏一个必不可少的部分.例如手机游戏<动友大富翁>.<斗地主>等,这都需要依赖于服务器.下面是一个游戏登录.注册界面,图10-1是游戏登录界面,图10-2是游戏 ...

  7. 如何在各类控件中输入/输出数据(学习笔记)

    一.知识点描述 1.相关控件 ①下拉框(ComboBox) 显示一个可编辑的文本框,其中包含一个允许值下拉列表. ②日历框(DateTimePick) 允许用户选择日期和时间,并以指定的格式显示该日期 ...

  8. 写有效率的SQL查询(V)

    轉自:http://www.netfocus.cn/peoplearticle994.html 先站在应用程序的角度说说它们的不同. 1. 直接拼SQL 就像大家了解的那样,直接拼SQL带来了SQL注 ...

  9. Asp.Net细节性问题技巧精萃(转载)

    1.<%=...%>与<%#... %>的区别:    答:<%=...%>是在程序执行时调用,<%#... %>是在DataBind()方法之后被调用 ...

最新文章

  1. C语言字符串处理的库函数
  2. ROS学习汇总(3D摄像头)
  3. C#调用dll中的函数
  4. MaxScript Slider/Timer
  5. Redis-09Redis的基础事务
  6. 《零基础》MySQL UPDATE 更新(十四)
  7. Linux 文件或文件夹重命名命令mv
  8. quartz mysql数据源_配置quartz数据源的三种方式
  9. js 禁止剪切、复制、粘贴的文本框代码
  10. [2017浙工大之江学院决赛 H] qwb与学姐(并查集,按秩合并,最小生成树,LCA)...
  11. Python—常用的几种列表、字典
  12. 使用koa托管静态资源文件
  13. Activemq下载与安装
  14. mysql 游戏背包_01背包问题(完全背包,部分背包)golang实现
  15. 三进制计算机未来的发展趋势,如果研制出三进制计算机会怎样?
  16. 有什么软件可以测试近视的度数,在家怎样测试视力度数,手机微信视力检测
  17. iOS App 签名的原理 App 重签名(三)
  18. 8086汇编工作环境_[C语言]什么是编辑器和编译器,什么是集成开发环境?编译原理又是什么?
  19. python教材答案编写函数求成绩平均数_学好Python例题之求成绩平均分
  20. 10.11_attention

热门文章

  1. Swift - 12 - 区间运算符和for-in
  2. C语言/C++ 中除法得到结果的精度问题(有浮点数参与除法,结果就是浮点数,除数和被除数都是整数,结果默认是整数)
  3. Linux虚拟内存与线性地址翻译
  4. 浪潮POWER 9:英特尔的挑战者
  5. AAAI 2019 | 借鉴传染病学原理探索医学图像CNN可解释性
  6. Android NDK开发之旅34 NDK 手把手带你入门直播技术
  7. ReactNative windows下打包生成安卓apk
  8. 2017年软件工程第七次作业-每周例行报告
  9. jvm诊断与优化(3)
  10. zendStudio|Eclipse 相关收藏