在本次《机房收费系统》编写过程中,我们非常平凡的使用到了DataTable和DataSet。对于这两种临时保存数据的网格虚拟表(表集)极大限度的方便了我们对数据库表的离线操作。
下面小结一下,DataTable和DataSet的使用方法,对于DataTable和DataSet,DataSet相当于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
转载于:https://blog.51cto.com/lidonglong/583700