在VB.NET机房收费系统个人重构的进行当中,发现在vb6.0中的MSHFlexGrid控件,在VS中用哪个控件呢?所以,便出现了DataGridView控件。可是,这个控件怎么用呢?我们以机房收费系统中的“收取金额查询”为例,讲一下DataGridView控件如何使用。
下面是“收取金额查询”的界面:
当然,位于界面下方的那个灰色的控件就是DataGridView了。那么。如何能将数据库中查到的数据显示在DataGridView中呢?我们在D层查询的过程中返回值是什么呢?是布尔值?表?还是实体呢?返回布尔值当然不行,因为是要在DataGridView中显示出数据。答案是返回表或者是实体都行。下面,我以返回表为例,看一下我实现的代码吧。
U层代码:
Public Class FormUI_QueryCollectSum
'查询按钮
Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click
'一共实例化两个实体类对象,将起始日期和终止日期分别赋给这两个实体类对象
'定义一个实体类对象,并实例化这个对象
Dim BeginData As Model.Model_CZRecord = New Model.Model_CZRecord
'将起始日期文本框里面的时间内容赋给实体类对象
BeginData.cz_date = datetimeBegin.Text.ToString()
'定义另一个实体类对象
Dim EndData As Model.Model_CZRecord = New Model.Model_CZRecord
'将终止日期文本框里面的时间内容赋给实体类对象
EndData.cz_date = datetimeEnd.Text.ToString()
'定义一个B层对象,用来返回B层的结果
Dim uB As BLL.BLL_QueryCollectSum = New BLL.BLL_QueryCollectSum
Dim a As DataTable
'调用B层的方法
a = uB.query_rechargerecord(BeginData, EndData)
'将返回值在DataGridView中显示出来
DataGridView1.DataSource = a
End Sub
B层代码:
Public Class BLL_QueryCollectSum
'定义一个函数,用来返回D层的查询结果
Public Function query_rechargerecord(ByVal model1 As Model.Model_CZRecord, ByVal model2 As Model.Model_CZRecord) As DataTable
'定义一个D层对象
Dim bD As DAL.DAL_QueryCollectSum = New DAL.DAL_QueryCollectSum
Dim a As DataTable
'调用D层函数
a = bD.Query_RechargeRecord(model1, model2) '!!注意这里是两个参数!!!!
'返回值是一个表
Return a
End Function
End Class
D层函数:
'定义一个函数,用来查询表中的数据
Public Function Query_RechargeRecord(ByVal tstData As Model.Model_CZRecord, ByVal txtData As Model.Model_CZRecord) As DataTable
'查询语句
Dim sqlstr As String
sqlstr = "select * from CZRecord where cz_date>'" & tstData.cz_date & "' And cz_date<'" & txtData.cz_date & "'"
'执行
Dim myAdapter As SqlDataAdapter = New SqlDataAdapter(sqlstr, conn)
Dim myTable As New DataTable()
myAdapter.Fill(myTable)
Return myTable
End Function
End Class
大致的代码就介绍到这里,估计这一块的难点就是有返回值了之后不知道在DataGridView控件中如何显示.有了上面的代码,希望能给大家提供一些思路。当然,知道了DataTable类型,还有下面这句话可是重点哦。
DataGridView1.DataSource = a