使用 DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。
到此,我用到了以下不同的两种方法。个人感觉,方法一:适合对三层以及代码熟悉度高的程序员;方法二:则更为适合我们现在初步接触三层,正在学习的未来程序员。当然了,这两种方法都是要会的,不同的阶段或者情景选择不同的方法,才是最合适的。
方法一:DataGridView绑定数据源
1.---添加项目数据源
完成之后,数据源就绑定好了。这时,默认在本窗体的加载事件下,会自动生成以下这段代码:
Private SubfrmQueryRechargeMoney_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load 'TODO: 这行代码将数据加载到表“Charge_PersonalDataSet2.T_OnPCRecord”中。您可以根据需要移动或删除它。 Me.T_OnPCRecordTableAdapter.Fill(Me.Charge_PersonalDataSet2.T_OnPCRecord) End Sub
这段代码就实现了将数据源--也就是我们数据库表中的全部信息显示在datagridview中。当然了,我们也可以修改这句代码的位置,例如把它放在一个button的click事件下。这都要视情况而定了。
2.---编辑列
一般情况下,添加完数据源之后,datagridview控件中显示的列名都是英文的,即你数据库中的字段名(一般我们的数据库中字段名都是英文的),所以,需要我们在“编辑列”中修改列的HeaderText属性,将其改为我们需要在界面上显示的列名。
3.---添加查询
大部分情况下,我们是在一定的条件下进行查询的,而以上步骤实现的全部查询,所以,在此,我们需要添加一定的查询条件,也就是sql语句。例如下图:
在确定“添加”后,窗体上会出现FillBy1ToolStripButton的控件供我们查询:
此时,FillBy1ToolStripButton的click事件下,也会自动生成以下代码:
图中标记部分,都是可以随我们修改的,我们可以不用它自动为我们生成的ToolStripButton,而换成我们自己的输入卡号的文本框和“查询”按钮。
至此,利用datagridview绑定数据源并且显示数据就可以完美实现了。
方法二:代码实现
这里只展示U层的代码,因为关于datagridview的代码只在U层出现。
'查询收取金额记录 strStartTime = dtpStartTime.Text strEndTime = dtpEndTime.Text dtQueryReturnMoney = bQueryReturnMoney.bQueryRemoveMoney(strStartTime, strEndTime) If dtQueryReturnMoney.Rows.Count = 0 Then MsgBox("该时间段暂无收取金额记录!", vbOKOnly, "提示信息") Exit Sub Else '设置datagridview控件绑定的数据源 dgvReturnMoney.DataSource = dtQueryReturnMoney '将datagridview的标题改为中文 dgvReturnMoney.Columns(0).HeaderText = "卡号" dgvReturnMoney.Columns(1).HeaderText = "退还金额" dgvReturnMoney.Columns(2).HeaderText = "退还时间" dgvReturnMoney.Columns(3).HeaderText = "结账教师" dgvReturnMoney.Columns(4).HeaderText = "结账状态" 'datagridview列对应datatable中的列 dgvReturnMoney.Columns(0).DataPropertyName = dtQueryReturnMoney.Columns(0).ColumnName dgvReturnMoney.Columns(1).DataPropertyName = dtQueryReturnMoney.Columns(1).ColumnName dgvReturnMoney.Columns(2).DataPropertyName = dtQueryReturnMoney.Columns(2).ColumnName dgvReturnMoney.Columns(3).DataPropertyName = dtQueryReturnMoney.Columns(3).ColumnName dgvReturnMoney.Columns(4).DataPropertyName = dtQueryReturnMoney.Columns(4).ColumnName
这些代码,也为我们实现了datagridview中实现数据的要求。也许读者会有疑问了,按照我们上述所写,不应该是方法二更为简单吗?其实不然,在方法为中,由于展示要求,我只贴出了U层的代码,B层和D层的代码都还是需要我们手动敲写的,就和我们平时三层之间的更删改是一样的。而方法一,你只需要按照上述步骤完成即可,其他层完全不需要代码。
至于方法一会不会违背三层呢,我现在也正在考虑,期待您的交流指导~