机房重构——泛型 or DataTable?

本文探讨了在数据库查询结果返回时,使用泛型与DataTable的区别。DataTable是内存中的临时数据表,而泛型提供了更高效的数据处理方式,减少了字段匹配的麻烦和B层与数据库的耦合。泛型在性能上优于DataTable,因为它避免了拆箱和装箱操作,提高了程序性能。通过学生上机记录查询的例子,展示了泛型在实际应用中的优势。
摘要由CSDN通过智能技术生成

        机房进行到了一大半的时候,发现很多师哥师姐在把数据库中的查询结果返回到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.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。


两者的区别?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 65
    评论
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值