之前写过一篇博客,分层实现了输入相应的条件,在数据库查找数据并显示在DataGridView中。
下面先介绍一下绑定数据源的实现方法,然后再进行对比。
添加DataGridView控件,按照流程进行。
测试成功以后,选择要查询的表
设计显示的界面
在属性窗口中可设置字体,ColumnHeadersDefaultCellStyle可以设置列名的字体,DefaultCellStyle设置的是显示数据的字体。
少量代码部分:
1、将数据加载到表,我们可以根据自己的需要把这行代码粘到单击事件下。
'TODO: 这行代码将数据加载到表“MyChargeDataSet7.T_OnLine_Info”中。 Me.T_OnLine_InfoTableAdapter1.Fill(Me.MyChargeDataSet7.T_OnLine_Info)2、把输入的卡号作为变量传入,即下面的txtcardno.text
Try Me.T_Line_InfoTableAdapter.FillBy2(Me.MyChargeDataSet1.T_Line_Info, txtcardno.Text) Catch ex As System.Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try
3、去掉最后一行自动加载的空行
DataGridView1.AllowUserToAddRows = False
4、自动显示行号
Private Sub DataGridView1_RowPostPaint(sender As Object, e As Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint Try e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, New SolidBrush(Color.CadetBlue), e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5) Catch MsgBox("操作失败") End Try End Sub
思考:
这两种方法虽然都可以实现查询并显示的功能,但其实是有很大差别的。
利用分层实现的方法,代码量大,结构较复杂,但三层之间的实体传递较清晰,便于我们理解、巩固和实现三层的思想。
对比而言绑定数据源使用的代码较少,不用考虑三层的关系,查询、显示基本都自动完成,更加自动化和人性化。
此外,绑定数据源之后DataGridView会自动增加新的一行。当要查询的条数较多时,这就非常方便了。而如果不绑定的话,自然也可以实现,只是代码更加复杂而已。
二者各有优缺点,可以都尝试一下!