机房收费系统集锦(二)--玩转DataGridView



          做到现在了,敲代码的快感又如约而至了。不得不说,敲代码实在是一件富有激情的事儿。

          好了,今天谈谈与数据显示有关的控件DataGridView吧。

          其实在VB6中,大家对它已经有了一定的了解了,相信当时对于这个控件使用的纠结感觉已经不复存在了吧。在vb.net中,它的使用变得更加简单了。

          下面以机房中的“查询充值记录”窗体为例,详细介绍一下gvw的“变形记”。

          在Entity层中,只定义了CardNo这一个变量,就不在具体写出来了。

           DLL层,处理数据,查询数据库里的充值信息          

 Public Function SelectChargeInfo(ByVal chargeInfo As Entity.frmChargeRecordEntity) As DataTable
        Dim connStr As String = "Server=Yang-PC;Database=ReCharge;User ID=sa;Password=123456"
        Dim conn As New SqlConnection(connStr)
        Dim cmd As New SqlCommand
        cmd.Connection = conn

        'T-SQL语句,选择需要显示的数据列
        cmd.CommandText = "Select T_ReCharge.cardNo,T_ReCharge.UserID,T_ReCharge.addMoney,T_ReCharge.Date,T_ReCharge.Time From T_ReCharge Where cardNo=@CardNo"
        cmd.Parameters.Add(New SqlParameter("@CardNo", chargeInfo.CardNo))  '给sql添加参数
        cmd.CommandType = CommandType.Text
        conn.Open()     '打开数据库

        Dim dataAdapter As New SqlDataAdapter  '实例化数据适配器SqlDataAdapter
        Dim dst As New DataSet                 '实例化数据集DataSet
        Dim dt As New DataTable                '实例化数据表DataTable

        dataAdapter.SelectCommand = cmd      '执行在数据源中选中的记录
        dataAdapter.Fill(dst, "chargeInfo")  '对数据集进行填充
        dt = dst.Tables("chargeInfo")        '形成临时数据表

        SqlHelper.sqlHelp.CloseDB()  '关闭数据库

        Return dt
    End Function

          

            BLL层,简单调用D层函数        

Public Function SelectCharge(ByVal ChargeInfo As Entity.frmChargeRecordEntity) As DataTable
        Dim ChargeInfoDal As New DAL.frmChargeRecordDal
        'Dim ChargeInfoEntity As New Entity.frmChargeRecordEntity
        Dim dt As New DataTable
        dt = ChargeInfoDal.SelectChargeInfo(ChargeInfo)  '执行D层的查询
        Return dt
End Function


           UI层,对控件进行一些外观上的处理和加工          

           

Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        ChargeInfoEntity.CardNo = txtCardNo.Text.Trim

        ' 设置用户不能手动给 DataGridView 添加新行 
        gvwChargeRecord.AllowUserToAddRows = False
        Try
            If MSetText.TextSet(txtCardNo) = True Then   '此方法是设置文本框不为空等条件的自定义函数
                '执行BLL层下的查询充值记录
                gvwChargeRecord.DataSource = ChargeInfoBll.SelectCharge(ChargeInfoEntity)
                '更改列的字段名
                gvwChargeRecord.Columns(0).HeaderText = "卡号"
                gvwChargeRecord.Columns(1).HeaderText = "充值教师"
                gvwChargeRecord.Columns(2).HeaderText = "充值金额"
                gvwChargeRecord.Columns(3).HeaderText = "充值日期"
                gvwChargeRecord.Columns(4).HeaderText = "充值时间"
                If gvwChargeRecord.Rows.Count = 0 Then
                    MsgBox("卡号不存在")
                    Exit Sub
                    txtCardNo.Focus()
                Else
                    gvwChargeRecord.AutoGenerateColumns = True   '自动添加新列
                    gvwChargeRecord.ReadOnly = True  '所有的单元格设为只读,防止修改
                End If
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
    End Sub


 

 

                  这是一篇功能型博客,一些其他的涉及到的使用方法和注意事项还会在以后总结出来,现在还是一篇“板砖之作”。 

                  这就是我目前对这个控件使用的理解,大家如果对代码有什么好的意见,欢迎提出!

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值