机房进行到了一大半的时候,发现很多师哥师姐在把数据库中的查询结果返回到B层的时候是使用的泛型,这也是我第一次接触到泛型,因为之前传回参数都是使用的DataTable,那么两者有什么区别呢?今天就来聊聊这个事儿
什么是DataTable?
它是一个临时保存数据的网格虚拟表(表示内存中数据的一个表),使用它的对象包括DataSet和DataView。下边是SqlHelper类中的一段代码,DataSet是由一组DataTable组成的,DataSet通过SqlDataAdapter,使用数据源中的数据生成和填充到每一个DataTable中,可以将DataSet理解为数据库中表的集合,而datatable就是那些个虚拟的表
<span style="font-size:14px;"> Public Function ExecDataTable(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim dt As New DataTable
Dim ds As New DataSet
cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = conn
cmd.Parameters.AddRange(paras) '参数添加
sqlAdapter = New SqlDataAdapter(cmd) '实例化adapter适配器
Try
sqlAdapter.Fill(ds)
dt = ds.Tables(0) '将数据填充到虚拟表格中
cmd.Parameters.Clear()
Catch ex As Exception
MsgBox(ex.Message)
Finally
Call CloseCmd(cmd)
End Try
Return dt
End Function</span>
什么是泛型?
1.在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
2.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。