DataGridView绑定数据源

时间:2021-04-07 19:34:51

       之前写过一篇博客如何将查询到的数据显示在DataGridView中,分层实现了输入相应的条件,在数据库查找数据并显示在DataGridView中。

       下面先介绍一下绑定数据源的实现方法,然后再进行对比。

       添加DataGridView控件,按照流程进行。

DataGridView绑定数据源


DataGridView绑定数据源


DataGridView绑定数据源


DataGridView绑定数据源


DataGridView绑定数据源

测试成功以后,选择要查询的表

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会自动增加新的一行。当要查询的条数较多时,这就非常方便了。而如果不绑定的话,自然也可以实现,只是代码更加复杂而已。

       二者各有优缺点,可以都尝试一下!