机房重构的过程,有许多功能的实现需要将数据库表中的数据显示在DataGridView控件中。这个功能的实现很简单,只要将D层中查询出来的数据以DataTable对象或者实体泛型加载到DataGridView控件即可。以查询退卡记录窗体为例:
Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click '实例化实体ReturnEntity类 Dim UReturnCard = New Entity.ReturnEntity() '实例化B层中ReturnBll类 Dim Breturncard = New BLL.ReturnCardBLL() '获取退卡日期 UReturnCard.ReturnDate = DateTimePicker1.Value '给参数赋值 Dim date1 = CStr(DateTimePicker1.Value.Date) Dim date2 = CStr(DateTimePicker2.Value) '经过查询ReturnCard_info表,返回实体泛型returnList Dim returnList = Breturncard.SelectDate(date1, date2) '通过DataGridView控件的DataSource属性为其加载数据源returnList DataGridView1.DataSource = returnList End Sub显示结果为:
咦,大家会发现虽然实现了功能,但是DataGridView控件中的列名是ReturnCard_info表中的字段。这对于用户来说是一件非常匪夷所思的事情,用户虽然看到了信息,但是并不知道这个表的列和行代表什么意思。作为一名软件设计人员来说,UI的设计是很重要的。很显然,这样的UI肯定不是用户想看到的。那么我们就要去优化它,把该它改成用户想要看到的界面。这里给大家提供两种方法。
一、通过设置DataGridView属性。
右击DataGridView —>编辑列—>添加
2、编辑要显示的列名
3、修改要替换的字段名
通过这种方法能够实现我们想要的,另外的一种的方法是编写代码。
二、编写代码
Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click '实例化实体ReturnEntity类 Dim UReturnCard = New Entity.ReturnEntity() '实例化B层中ReturnBll类 Dim Breturncard = New BLL.ReturnCardBLL() '获取退卡日期 UReturnCard.ReturnDate = DateTimePicker1.Value '给参数赋值 Dim date1 = CStr(DateTimePicker1.Value.Date) Dim date2 = CStr(DateTimePicker2.Value) '经过查询ReturnCard_info表,返回实体泛型returnList Dim returnList = Breturncard.SelectDate(date1, date2) '通过DataGridView控件的DataSource属性为其加载数据源returnList() 'DataGridView1.DataSource = returnList Dim dt As New Data.DataTable dt.Columns.Add("卡号") dt.Columns.Add("退卡教师") dt.Columns.Add("退卡日期") dt.Columns.Add("退卡时间") dt.Columns.Add("退卡金额") dt.Columns.Add("结账状态") '申明一新行 Dim dataNewRow As DataRow For i = 0 To returnList.Count - 1 UReturnCard = returnList.Item(i) dataNewRow = dt.NewRow() '显示数据 dataNewRow.Item(0) = UReturnCard.CardID dataNewRow.Item(1) = UReturnCard.ReturnCash dataNewRow.Item(2) = UReturnCard.ReturnDate dataNewRow.Item(3) = UReturnCard.ReturnTime dataNewRow.Item(4) = UReturnCard.UserID dataNewRow.Item(5) = UReturnCard.ICheck dt.Rows.Add(dataNewRow) Next '绑定数据源 DataGridView1.AutoGenerateColumns = True DataGridView1.AllowUserToAddRows = False Me.DataGridView1.DataSource = dt Me.DataGridView1.Refresh() End Sub看一下显示后的效果吧!
原文:http://blog.csdn.net/mhj9388/article/details/44538441