前言
vb.net和VB两种的差距并不是非常大,但是使用起来还是有一些不同的,拿机房的充值记录查询功能实现来具体说明。使用 vs就比使用VB要简单很多,省去了很多人工的操作。
操作说明
在vb.net版机房收费系统中我对需求做了修改,学生端的充值记录查询就变成了如下界面:
1、 功能:当充值记录查询界面打开的时候学号会将登录界面的学号同步过来,相应的DataGridView中就会显示出相应的记录信息,无需再次查询,同时,也为了保护用户的信息,学生端的用户只能查询个人的信息。
2、接下来就谈谈DataGridView的具体使用,首次使用的时候会觉得有些困难,但是操作一遍之后再进行就会发现非常简单了。
(1)点击工具右上角的小三角,选择“获取项目数据源”,如图:
(2)根据出来的页面依次点击下一步即可
(3)然后点击如下图的新建链接
(4)根据如下图片进行填写内容
(5)点击确定后进行接下来的操作,本部分内容选择的数据表为recharge,为了进行各个dataset的区分,将其重新命名,如图:
(6)进行完以上操作之后设计结果如图,但是我们会发现它是将数据库中的表导出,那么这样不方便用户查看,我们就要进行相应的修改
(7)点击表的右上角的小三角,选择“编辑列”,然后修改外观的HeaderText,如图所示:
(8)修改完成之后就会看到如下图了,这样就更贴近客户了一些
(9)DataGridView还有非常好的一点就是简单方便,可以通过添加查询来实现表格和数据库中数据的链接,修改红框中的数据,这里需要根据自己的代码来写,如图所示:
(10)然后点击查询生成器,进行如下图的操作
(11)最后也就大功告成了!
(12)然后我们会发现有一些自动生成的代码
'TODO: 这行代码将数据加载到表“Rechargerecord.recharge”中。您可以根据需要移动或删除它。
Me.RechargeTableAdapter.Fill(Me.Rechargerecord.recharge)
Private Sub FillByToolStripButton_Click(sender As Object,e As EventArgs) Handles FillByToolStripButton.Click
Try
Me.RechargeTableAdapter.FillBy(Me.Rechargerecord.recharge,UserNameToolStripTextBox.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
部分代码展示
U层
Public Class U_Rechargerecord
Private Sub U_Rechargerecord_Load(sender As Object,e As EventArgs) Handles MyBase.Load
'TODO: 这行代码将数据加载到表“Rechargerecord.recharge”中。您可以根据需要移动或删除它。
Me.RechargeTableAdapter.Fill(Me.Rechargerecord.recharge)
'删除最后一行空行
DataGridView1.AllowUserToAddRows = False
'隐藏工具栏
FillByToolStrip.Hide()
'接下来要进行的就是将登录窗体的用户名传入此窗体的文本框中
Dim facadeRechargerecord As New Facade.Fe_Rechargerecord
Dim table As DataTable
Dim UserInfo As New Entity.E_Rechargerecord
table = facadeRechargerecord.CheckLink(UserInfo)
txtstudentNo.Text = table.Rows(0)(1)
End Sub
Private Sub FillByToolStripButton_Click(sender As Object,UserNameToolStripTextBox.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub txtstudentNo_TextChanged(sender As Object,e As EventArgs) Handles txtstudentNo.TextChanged
'因为这里不需要点击按钮,txtstudentNo文本框中的数据直接接受登录窗体的用户名,所以这里需要
'做的就是当文本框中同步登录窗体的内容时触发tool工具
'将文本框中的值赋值给添加的查询tootextBox
UserNameToolStripTextBox.Text = txtstudentNo.Text
Try
Me.RechargeTableAdapter.FillBy(Me.Rechargerecord.recharge,UserNameToolStripTextBox.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
End Class
外观层
Public Class Fe_Rechargerecord
Public Function CheckLink(ByVal UserInfo As Entity.E_Rechargerecord) As DataTable
Dim isLink As New BLL.B_Rechargerecord
Dim flag As DataTable
flag = isLink.Link(UserInfo)
Return flag
End Function
End Class
B层
Public Class B_Rechargerecord
Public Function Link(ByVal UserInfo As Entity.E_Rechargerecord) As DataTable
Dim IRechargerecord As IDAL.I_Rechargerecord
'调用创建用户的工厂方法
IRechargerecord = Factory.Fy_Rechargerecord.CreateUserInterface
Dim table As DataTable
table = IRechargerecord.selectUser(UserInfo)
Return table
End Function
End Class
D层
Imports System.Data.sqlClient
Public Class D_Rechargerecord : Implements IDAL.I_Rechargerecord
'声明并实例化sqlhelper类
Private sqlHelper As sqlHelper.sqlhelper = New sqlHelper.sqlhelper
'增删改查
Public Function selectUser(UserInfo As Entity.E_Rechargerecord) As DataTable Implements IDAL.I_Rechargerecord.selectUser
'定义
Dim sql As String
'中间变量用于存储从数据库中查找信息
Dim table As DataTable
'声明并实例化参数数组
'这里需要调用登录窗体的用户名
Dim UserInfo1 As New Entity.E_Login
Dim sqlParams As sqlParameter() = {New sqlParameter("@UserName",UserInfo.UserName = UserInfo1.UserName)}
sql = "select * from recharge where studentNo=@UserName"
table = sqlHelper.GetDataTable(sql,CommandType.Text,sqlParams)
Return table
End Function
End Class
计算机小白学习到了一个新的知识,兴奋!