在本次《机房收费系统》编写过程中,我们非常平凡的使用到了DataTableDataSet。对于这两种临时保存数据的网格虚拟表(表集)极大限度的方便了我们对数据库表的离线操作。

下面小结一下,DataTableDataSet的使用方法,对于DataTableDataSetDataSet相当于DataTable的集合。DataTable就相当于是单张的二维表。那么DataSet就是这些二维表的一个大集合。

 

本次小结只针对于DataTable

 

1、          DataTable中写入数据

1)  将数据库表中的数据直接写入

将数据库表中的数据直接写入表中是一种较长用的方法。非常方便的读取数据,代码实现上也要比用实体接收数据库的信息方便的多。

        

读取数据方法如下:

   Dim ds As New DataTable                       定义一个DataTable来接收从数据库读取出来的符合条件的数据

   Dim ReadData As New SqlDataAdapter(Objcmd)     '用于读取数据库,和给DataTable 赋值

        Try

            Objconn.Open()                        ‘连接数据库

            ReadData.Fill(ds)                     ‘读取数据库中的信息

            Return ds                            

        Catch ex As Exception

            Return Nothing

        Finally

   ……  ……

通过sqlDataAdapter就可以直接将数据写入到DataTable中,不用管数据分别是什么类型、有没有值。让我读取数据更加的简洁方便。也可以直接将其作为返回值返回。

 

2)  手动填写数据到DataTable

  那我们怎样将自己想要的数据填写到DataTable的指定“单元格”中。方法如下面的代码所示:

     

      在向DataTable中填写数据之前,首先要给DataTable添加 “行” “列”:

Dim dataTable  As New DataTable            '用于接收所有需要在界面显示的信息

     Dim dtRowsOnlineInfo As DataRow           定义一行      

     Dim dtColumn As DataColumn                定以一列

 

        dtRowsOnlineInfo = dtInfo.NewRow        ‘实例化行 

        dtInfo.Rows.Add(dtRowsOnlineInfo)       ‘将实例化后的行添加到DataTable

       

       dtColumn = New DataColumn("0")           ‘添加一列,列名为“0

   dtInfo.Columns.Add(dtColumn)            ‘添加列

        dtColumn = New DataColumn("1")

        dtInfo.Columns.Add(dtColumn)

        ……    ……

上面建好了表,也标号了行名和列名,下面就可以添加数据了:

 

dtInfo.Rows(2)(0) = etyStuInfo.SchoolNum

 

dtInfo.Rows(2)(1) = etyStuInfo.StuName

dtInfo.Rows(2)(2) = etyStuInfo.Sex

dtInfo.Rows(2)(3) = etyStuInfo.Balance

通过对应的行号和列号为DataTable赋值。

 

2、          读取DataTable中的数据

1)  直接读取所有数据

直接将所有是所有的数据显示在窗体上,我们可以将这些数据显示在DataGridView中。只需要以一句代码!

DataGridView.DataSource=Datatable         这样就可以直接将数据显示出来了。读取单个单元格的数据

2)  读取DataTable中的某一单元格中数据

      Text1.text = dtInfo.Rows(1)(1)

3、         判断DataTable是否为空

1)  判断整表是否为空

对整个表是否为空的判断,是要判断DataTable是不是Nothing 

2)判断某一单元格是否为空

           对单元格进行的判断是否为空,

  If Not (Convert.IsDBNull(dt.Rows(1)(1))) Then            ‘判断dt的第一行的第一列是否为空(如果不为空)

                txtOfflineTime.Text = dt.Rows(1)(1)

            Else

                txtOfflineTime.Text = ""

            End If