本文主要是介绍【个人机房重构】——DataGridView控件绑定数据 ㈡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在上一篇文章中,说了一下使用DataGridView控件直接绑定数据源的做法,那样做虽然方便,但是有缺陷(详情请看上一篇文章)。现在,我将从使用实体类填充泛型集合,用泛型集合来传递数据的方法,来展示DataGridView如何显示数据的。
一、设置DataGridView控件
首先,插入DataGridView控件后,进行相应的设置:
注:设置时,4、5是特别需要注意的。数据DataPropertyName这里,必须要与实体的属性名相同。
设置成功:
二、编写代码
U层
'**********************************************
' 文 件 名:frmCheckRecharge
' 命名空间:UI
' 内 容:
' 功 能:查询学生充值记录
' 文件关系:
' 作 者:杨晨光
' 小 组:
' 生成日期:2014/8/12 22:17:44
' 版 本 号:V1.0.0.0
' 修改日志:
' 版权说明:
'**********************************************Public Class frmCheckRechargePrivate Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click'卡号不为空的话,开始进行传值Dim EUser As New Entity.RechargeEntity '实例化新的RechargeEntity,用来传递B层的实体Dim BUser As New BLL.CheckRechargeBLL '实例化新的CheckRechargeBLL,传递参数Dim LUser As New List(Of Entity.RechargeEntity) '实例化新的List泛型集合EUser.cardNo = VarType(txtCID.Text.Trim) '将卡号赋值给实体层的EUser,VarType将字符串类型转换成integer类型LUser = BUser.Check(EUser) '调用B层的Check方法'判断返回的泛型集合是否为空'不为空If IsNothing(LUser) = False Then'将泛型集合中数据,显示在DataGridView控件上DataGridView1.DataSource = LUserElsetxtCID.Text = "" '清空输入卡号文本框txtCID.Focus() '获得光标输入焦点End IfEnd Sub'自动显示行号Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs)Trye.Graphics.DrawString((e.RowIndex + 1).ToString(),e.InheritedRowStyle.Font, New SolidBrush(Color.CadetBlue),e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5)CatchMsgBox("操作失败")End TryEnd Sub
End Class
B层
Public Class CheckRechargeBLLFunction Check(ByVal user As Entity.RechargeEntity) As List(Of Entity.RechargeEntity) '返回值为泛型集合'先判断卡号是否为空,为空的话If user.cardNo.ToString.Trim = "" ThenMsgBox("卡号不能为空,请输入卡号!", MsgBoxStyle.Exclamation, "警告")Return NothingEnd If'卡号不为空,则进行赋值判断Dim LUser As List(Of Entity.RechargeEntity)Dim DUser As New DAL.CheckRechargeDALLUser = DUser.Query(user) '将user值通过D层的Query方法,传到泛型集合LUser中'判断返回的泛型集合是否为空If IsNothing(LUser) = False Then '不为空Return LUserElseMsgBox("没有此卡号的记录,请重新输入卡号", MsgBoxStyle.Exclamation, "警告")Return NothingEnd IfEnd Function
End Class
Imports System.Data
Imports System.Data.SqlClient
Public Class CheckRechargeDALFunction Query(ByVal user As Entity.RechargeEntity) As List(Of Entity.RechargeEntity)'定义一个操作数据库的助手类Dim MySqlHelper As New SqlHelper'定义对数据库的操作语句Dim strSql As StringstrSql = "select * from T_Recharge where cardNo=@cardNo"'加入参数Dim paras As SqlParameter()paras = {New SqlParameter("@cardNo", user.cardNo)}'执行查询,并将查询的结果保存到dt里边Dim dt As DataTable'保存转换后的泛型集合Dim myList As List(Of Entity.RechargeEntity)'执行查询dt = MySqlHelper.ExecSelect(strSql, CommandType.Text, paras)'进行判断,dt中是否有记录If dt.Rows.Count > 0 Then 'dt中有记录'将dt转换为泛型集合myList = ConvertHelper.convertToList(Of Entity.RechargeEntity)(dt)Return myList '返回myListElseReturn NothingEnd IfEnd Function
End Class
三、结果
这篇关于【个人机房重构】——DataGridView控件绑定数据 ㈡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!