机房重构的过程,有许多功能的实现需要将数据库表中的数据显示在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
看一下显示后的效果吧!
总结
UI的设计是是否能抓住用户的关键,一款好的软件首先是看她的界面如何 。我们要从现在培养起这种意识,从用户的角度从发去设计自己的系统。