AddRange 取代 Add
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
原代码:
- ''' 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
''' 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
修改后:
- ''' <summary>
- ''' 查询方法
- ''' </summary>
- ''' <param name="myCommandType">sql语句类型:区别于存储过程</param>
- ''' <param name="Param">参数数组</param>
- ''' <param name="strSql">sql语句</param>
- Public Function ExecuteQuery(ByVal myCommandType As CommandType, ByVal Param() As SqlParameter, ByVal strSql As String) As DataTable
- Dim dt As New DataTable
- Comm = New SqlCommand(strSql, Me.GetConn)
- Comm.CommandType = myCommandType
- If Param IsNot Nothing Then
- Comm.Parameters.AddRange(Param)
- End If
- Try
- myDataReader = Comm.ExecuteReader
- dt.Load(myDataReader)
- Catch ex As Exception
- Throw ex
- Finally
- myDataReader.Close()
- Conn.Close()
- End Try
- Return dt
- End Function
AddRange 取代 Add的更多相关文章
- Add和AddRange的区别
Add和AddRange区别 Add和AddRange Add:将指定的对象添加到……中 AddRange:向……末尾,添加数组 - 在群体操作时,使用AddRange取代Add 用AddRange可 ...
- C#学习记录
转眼几个月没更博了,把几个月前学C#的笔记发一下,就记录了点教重要的点子而已 1.打印 Console.WriteLine(); 打印 Console.ReadKey(); 按一个按键继续执行 Con ...
- SqlHelper——数据库小助手
SqlHelper其实就是一个类. 早就听说过"SqlHelper"这个名词,也查过相关的资料,但还是一头雾水.当真的去实践去用它时,就会发现其实它没那么神秘. 当敲第一个窗体的时 ...
- [转]How to Improve Entity Framework Add Performance?
本文转自:http://entityframework.net/improve-ef-add-performance When you overuse the Add() method for mul ...
- 【译】第42节---EF6-DbSet.AddRange & DbSet.RemoveRange
原文:http://www.entityframeworktutorial.net/entityframework6/addrange-removerange.aspx EF 6中的DbSet引入了新 ...
- Entity Framework 6.0 Tutorials(7):DbSet.AddRange & DbSet.RemoveRange
DbSet.AddRange & DbSet.RemoveRange: DbSet in EF 6 has introduced new methods AddRange & Remo ...
- EF 添加方式比较
using System; using System.Collections.Generic; using DBAccess.Models; using EntityFramework.BulkIns ...
- Entity Framework Core 2.0 入门简介
不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...
- Entity Framework Core 2.0 入门
该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...
随机推荐
- SQL WHERE 子句
WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句. 语法 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 释意:选取 [列] 来自 [ ...
- java 根据实体对象生成 增删改的SQL语句 ModelToSQL
package com.xxx.utils; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import jav ...
- LeetCode算法题-String Compression(Java实现)
这是悦乐书的第230次更新,第242篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第97题(顺位题号是443).给定一组字符,就地压缩它.压缩后的长度必须始终小于或等于原 ...
- Spring AOP 术语
- Vue技巧小结(持续更新)
1. 动态生成的input自动focus 背景: input元素在需要时才插入DOM,这时元素用autofocus属性第一次是可以获取焦点,但是如果有第二个,就不再生效,所以得另外的办法. 方法: / ...
- C#深度学习の枚举类型(IEnumerator,IEnumerable)
一.关于枚举的含义 .Net提供了可枚举类型的接口IEnumerable和枚举器接口IEnumerator,程序集System.Collections 另: IQueryable 继承自IEnumer ...
- [2] TensorFlow 向前传播算法(forward-propagation)与反向传播算法(back-propagation)
TensorFlow Playground http://playground.tensorflow.org 帮助更好的理解,游乐场Playground可以实现可视化训练过程的工具 TensorFlo ...
- 基于Spring Boot和Shiro的后台管理系统FEBS
FEBS是一个简单高效的后台权限管理系统.项目基础框架采用全新的Java Web开发框架 —— Spring Boot 2.0.3,消除了繁杂的XML配置,使得二次开发更为简单:数据访问层采用Myba ...
- bootstrap+Ajax+SSM(maven搭建)实现增删改查
https://www.jianshu.com/p/d76316b48e3e 源码: https://github.com/Ching-Lee/crud 功能点: 分页 数据校验 ajax Rest风 ...
- 【转】Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
1.了解几个概念(1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720×1280表示此屏幕在宽 ...