Add和AddRange的区别

文章比较了Add和AddRange方法在添加SQL参数时的效率,推荐在群体操作时使用AddRange以提高性能。举例了如何在执行查询时替换代码,以利用AddRange方法。

Add和AddRange区别 Add和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 

原代码:

view plain
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.  
11.    comm = New SqlCommand(strSql, Me.GetConn)  
12.    comm.CommandType = ct  
13.  
14.    If param IsNot Nothing Then  
15.        For i = 0 To param.Length - 1  
16.            comm.Parameters.Add(param(i))  
17.        Next i  
18.    End If  
19.  
20.    Try  
21.        dr = comm.ExecuteReader()  
22.        dt.Load(dr)  
23.    Catch ex As Exception  
24.        Throw ex  
25.    Finally  
26.        dr.Close()  
27.        conn.Close()  
28.    End Try  
29.  
30.    Return dt  
31.End Function  

修改后:

view plain
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.  
10.    Comm = New SqlCommand(strSql, Me.GetConn)  
11.    Comm.CommandType = myCommandType  
12.  
13.    If Param IsNot Nothing Then  
14.        Comm.Parameters.AddRange(Param)  
15.    End If  
16.  
17.    Try  
18.        myDataReader = Comm.ExecuteReader  
19.        dt.Load(myDataReader)  
20.    Catch ex As Exception  
21.        Throw ex  
22.    Finally  
23.        myDataReader.Close()  
24.        Conn.Close()  
25.    End Try  
26.  
27.    Return dt  
28.End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ohmygodvv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值