cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环,cmd.Parameters的AddRange方法是增加一个参数的数组。

Add:将指定的对象添加到……中

AddRange:向……末尾,添加数组

在群体操作时,使用AddRange取代Add

用AddRange可以让我们要加入的东西一次性加入,而不要每次只加一个,这样显然可以加快速度。几乎所有的windows control都支持Add和AddRange两种方法。

Add:

For i = 0 To param.Length - 1
comm.Parameters.Add(param(i))
Next i

AddRange:

Comm.Parameters.AddRange(Param)

支持Add和AddRange的类:
StringCollection, TraceCollection, SqlParameter, etc.
HttpWebRequest
UserControl
ColumnHeader

原代码:

  1. ''' ExecuteQuery,查询数据操作
  2. ''' </summary>
  3. ''' <param name="strSql">sql语句</param>
  4. ''' <param name="param">参数集合</param>
  5. ''' <param name="ct">命令类型</param>
  6. ''' <returns>DataTable类型,数据表</returns>
  7. ''' <remarks></remarks>
  8. Public Function ExecuteQuery(ByVal strSql As String, ByVal param() As SqlParameter, ByVal ct As CommandType) As DataTable
  9. Dim dt As New DataTable
  10. comm = New SqlCommand(strSql, Me.GetConn)
  11. comm.CommandType = ct
  12. If param IsNot Nothing Then
  13. For i = 0 To param.Length - 1
  14. comm.Parameters.Add(param(i))
  15. Next i
  16. End If
  17. Try
  18. dr = comm.ExecuteReader()
  19. dt.Load(dr)
  20. Catch ex As Exception
  21. Throw ex
  22. Finally
  23. dr.Close()
  24. conn.Close()
  25. End Try
  26. Return dt
  27. End Function

''' ExecuteQuery,查询数据操作 ''' </summary> ''' <param name="strSql">sql语句</param> ''' <param name="param">参数集合</param> ''' <param name="ct">命令类型</param> ''' <returns>DataTable类型,数据表</returns> ''' <remarks></remarks> Public Function ExecuteQuery(ByVal strSql As String, ByVal param() As SqlParameter, ByVal ct As CommandType) As DataTable Dim dt As New DataTable comm = New SqlCommand(strSql, Me.GetConn) comm.CommandType = ct If param IsNot Nothing Then For i = 0 To param.Length - 1 comm.Parameters.Add(param(i)) Next i End If Try dr = comm.ExecuteReader() dt.Load(dr) Catch ex As Exception Throw ex Finally dr.Close() conn.Close() End Try Return dt End Function

修改后:

  1. ''' <summary>
  2. ''' 查询方法
  3. ''' </summary>
  4. ''' <param name="myCommandType">sql语句类型:区别于存储过程</param>
  5. ''' <param name="Param">参数数组</param>
  6. ''' <param name="strSql">sql语句</param>
  7. Public Function ExecuteQuery(ByVal myCommandType As CommandType, ByVal Param() As SqlParameter, ByVal strSql As String) As DataTable
  8. Dim dt As New DataTable
  9. Comm = New SqlCommand(strSql, Me.GetConn)
  10. Comm.CommandType = myCommandType
  11. If Param IsNot Nothing Then
  12. Comm.Parameters.AddRange(Param)
  13. End If
  14. Try
  15. myDataReader = Comm.ExecuteReader
  16. dt.Load(myDataReader)
  17. Catch ex As Exception
  18. Throw ex
  19. Finally
  20. myDataReader.Close()
  21. Conn.Close()
  22. End Try
  23. Return dt
  24. End Function

转载于:https://www.cnblogs.com/net5x/p/4116280.html

AddRange 取代 Add相关推荐

  1. Add和AddRange的区别

    Add和AddRange区别 Add和AddRangeAdd:将指定的对象添加到--中AddRange:向--末尾,添加数组-在群体操作时,使用AddRange取代Add 用AddRange可以让我们 ...

  2. C# OracleParameter 传参 实例

    1.注:Oracle:OracleParameter,参数命名以":"作为标识: MSSQL:SqlParameter,参数命名以"@"作为标识,根据数据库不同 ...

  3. C#中 Add 和 AddRange 的区别

    Add:是将指定的对象添加到集合或者容器中 AddRange:向集合或者容器中的末尾添加数据数组. 一般来说,在群体操作时,都是用AddRange替代Add.因为AddRange可以将要加入的东西一次 ...

  4. [转]How to Improve Entity Framework Add Performance?

    本文转自:http://entityframework.net/improve-ef-add-performance When you overuse the Add() method for mul ...

  5. 【译】第42节---EF6-DbSet.AddRange DbSet.RemoveRange

    原文:http://www.entityframeworktutorial.net/entityframework6/addrange-removerange.aspx EF 6中的DbSet引入了新 ...

  6. 使用 ASP.NET Core Razor 页、Web API 和实体框架进行分页和排序

    目录 核心类 数据层 The API Razor页面 如何使用 .NET Core Razor 页.Web API 和实体框架实现分页和排序,以产生良好的性能. 该项目的特点是: 选择页面大小(Pag ...

  7. SqlHelper——数据库小助手

    SqlHelper事实上就是一个类. 早就听说过"SqlHelper"这个名词.也查过相关的资料.但还是一头雾水.当真的去实践去用它时,就会发现事实上它没那么神奇. 当敲第一个窗口 ...

  8. 考研英语二真题文章重点单词

    2019 #完形填空 stay aware of 保持--的意识:随时留意-- fluctuation n. 起伏,波动 as for 至于,关于 shift from 从--转移 generally ...

  9. 042MenuStrip 类

    MenuStrip 类 https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.menustrip?view=netcore- ...

最新文章

  1. python matplotlib画数据分布图_Python数据可视化之matplotlib
  2. 王炸养成记——看Linux 25周年发展变化
  3. 算法---------数组-----------两数相加
  4. node.js初探-超越昨天的自己系列(3)
  5. 【转】Linux Posix Timer使用
  6. 通过Redis、Memcache的 incr 原子操作防刷机制的使用差别
  7. OpenCV进行图像相似度对比的几种办法
  8. Linux修改密码后不能SSH远程登录了
  9. 华为再获90天“临时许可证” 可继续维护客户
  10. python处理一些乱码的中文文本时decode('utf-8')报错的处理
  11. opencv3.2+opencv_contrib+cmake
  12. android开源torrent解析,bt分析之bt种子制作(1)
  13. 使用U盘制作win10启动盘
  14. H3CSE园区-组播路由协议
  15. python 全国省市区列表查询
  16. 计算机ps基础知识教案范文,计算机制图软件ps教案内页.doc
  17. Java PdfBox 提取指定PDF页面图片
  18. cisco思科交换机的基本使用
  19. 学期博客:学习进度条
  20. 大数据可视化之MyBatis笔记(1)

热门文章

  1. MySQL基础(八):模糊查询的SQL语句、where条件查询、比较运算符查询、逻辑运算符查询、模糊查询、范围查询、空判断查询
  2. Pdf文本域替换,iText替换pdf文本域
  3. K8S网络-02-安装 weave:v2.8.1
  4. JAVA中parameterized,谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType...
  5. android实现抖音列表,Android使用RecyclerView实现抖音主界面
  6. 那些年配置过的工作环境
  7. 京东售后服务认证考试
  8. Qt QTreeWidget树形控件用法详解
  9. 八位二进制乘法器VHDL
  10. java 打开服务器excel文件_java打开excel