vb.net机房收费系统之组合查询
我个人一直认为,组合查询是机房收费系统的一个难点,尤其是用到三层之后,如果要为组合查询中的每一个查询建立一个显然是太麻烦了。
下面介绍一下我的方法,对大家起个参考作用。
我将该表中可输入的内容定义为一个类,这样调用一次B层和D层就可以了完成查询了。
我以学生上机记录查询为例
1、UI层
Public Class FrmQuerryRecALLStuUP
Protected Overrides Sub cmdQuerry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Try
myGrid.Columns.Clear()
myGrid.Columns.Add("卡号", "卡号")
myGrid.Columns.Add("学号", "学号")
myGrid.Columns.Add("学生姓名", "学生姓名")
myGrid.Columns.Add("性别", "性别")
myGrid.Columns.Add("上机日期", "上机日期")
myGrid.Columns.Add("上机时间", "上机时间")
myGrid.Columns.Add("上机日期", "下机日期")
myGrid.Columns.Add("下机日期", "下机时间")
myGrid.Columns.Add("消费金额", "消费金额")
' myGrid.Columns.Add("操作员", "操作员")
'''''''''''''''将组合框中内容传递到UQuery参数''''''''''''''''''
Dim UQuery As New Entity.Entity_QueryCompositon
UQuery.Combine1 = Trim(cobCombine1.Text)
UQuery.Combine2 = Trim(cobCombine2.Text)
UQuery.FiledName1 = Trim(cobFild1.Text)
UQuery.FiledName2 = Trim(cobFild2.Text)
UQuery.FiledName3 = Trim(cobFild3.Text)
UQuery.Operator1 = Trim(cobOperator1.Text)
UQuery.Operator2 = Trim(cobOperator2.Text)
UQuery.Operator3 = Trim(cobOperator3.Text)
UQuery.QueryContent1 = Trim(TextBox1.Text)
UQuery.QueryContent2 = Trim(TextBox2.Text)
UQuery.QueryContent3 = Trim(TextBox3.Text)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim BQuerry As New BLL.BLL_QuerryCompositon
Dim BIsEmpty As String
BIsEmpty = BQuerry.isEmpty(UQuery) '判断是否为空
If BQuerry.QuerryOK = False Then '如果判断失败,则退出
Exit Sub
End If
Dim BModifyFild As New Entity.Entity_QueryCompositon
BModifyFild = BQuerry.ModifyFild(UQuery) '将汉字转换为计算机能识别的语言
Dim table As New DataTable
table = BQuerry.QuerryStuUp(BModifyFild)
If table.Rows.Count <= 0 Then
MsgBox("没有记录")
Else
For i = 0 To table.Rows.Count - 1 '将dt表中的内容显示在DataGridView中 ’这种方式显示部分
myGrid.Rows.Add()
myGrid.Rows(i).Cells(0).Value = table.Rows(i)(0) '卡号
myGrid.Rows(i).Cells(1).Value = table.Rows(i)(1) '学号
myGrid.Rows(i).Cells(2).Value = table.Rows(i)(2) '学生姓名
myGrid.Rows(i).Cells(3).Value = table.Rows(i)(4) '性别
myGrid.Rows(i).Cells(4).Value = table.Rows(i)(5) '上机日期
myGrid.Rows(i).Cells(5).Value = table.Rows(i)(6) '上机时间
myGrid.Rows(i).Cells(6).Value = table.Rows(i)(7) '下机日期
myGrid.Rows(i).Cells(7).Value = table.Rows(i)(8) '下机时间
myGrid.Rows(i).Cells(8).Value = table.Rows(i)(10) '消费金额
' myGrid.Rows(i).Cells(9).Value = table.Rows(i)(9) '操作员
Next i
myGrid.Rows(0).Selected = False
End If
Catch ex As Exception
MsgBox(ex.Message, vbOKOnly, "警告!")
End Try
End Sub
Protected Overrides Sub cmdOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim grd = daochu(myGrid)
End Sub
Private Sub FrmQuerryRecALLStuUP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cobFild1.Items.Add("卡号")
cobFild1.Items.Add("学号")
cobFild1.Items.Add("姓名")
cobFild1.Items.Add("性别")
cobFild1.Items.Add("上机日期")
cobFild1.Items.Add("上机时间")
cobFild1.Items.Add("下机日期")
cobFild1.Items.Add("下机时间")
cobFild1.Items.Add("消费金额")
cobFild2.Items.Add("卡号")
cobFild2.Items.Add("学号")
cobFild2.Items.Add("姓名")
cobFild2.Items.Add("性别")
cobFild2.Items.Add("上机日期")
cobFild2.Items.Add("上机时间")
cobFild2.Items.Add("下机日期")
cobFild2.Items.Add("下机时间")
cobFild2.Items.Add("消费金额")
cobFild3.Items.Add("卡号")
cobFild3.Items.Add("学号")
cobFild3.Items.Add("姓名")
cobFild3.Items.Add("性别")
cobFild3.Items.Add("上机日期")
cobFild3.Items.Add("上机时间")
cobFild3.Items.Add("下机日期")
cobFild3.Items.Add("下机时间")
cobFild3.Items.Add("消费金额")
End Sub
End Class
2、B层
'/*************************************************
'作者:金福林
'小组: 无
'说明:组合框B层
'创建日期:2014/5/5 20:10:13
'版本号:1.1.0
'**********************************************/ Public Class BLL_QuerryCompositon
Implements IDAL.IDAL_QuerryCompositon Public QuerryOK As Boolean = False Public Function CombineString(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As String End Function Public Function isEmpty(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As String
If QuerryCompositon.FiledName1 = "" Then
MsgBox("字段名不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.Operator1 = "" Then
MsgBox("操作符不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.QueryContent1 = "" Then
MsgBox("查询内容不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function End If If QuerryCompositon.QueryContent1.Length > 11 Then
MsgBox("您对查询内容一输入的字符串过长,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.Combine1 <> "" Then '如果组合关系不为空
If QuerryCompositon.FiledName2 = "" Then
MsgBox("当存在组合关系时,字段名不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.Operator2 = "" Then
MsgBox("当存在组合关系时,操作符不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.QueryContent2 = "" Then
MsgBox("当存在组合关系时,查询内容不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.QueryContent2.Length > 11 Then
MsgBox("您对查询内容二输入的字符串过长,请重新输入", vbOKOnly, "警告!")
Exit Function
End If End If If QuerryCompositon.Combine2 <> "" Then '如果组合关系不为空
If QuerryCompositon.FiledName3 = "" Then
MsgBox("当存在组合关系时,字段名不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.Operator3 = "" Then
MsgBox("当存在组合关系时,操作符不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.QueryContent3 = "" Then
MsgBox("当存在组合关系时,查询内容不能为空,请重新输入", vbOKOnly, "警告!")
Exit Function
End If If QuerryCompositon.QueryContent2.Length > 11 Then
MsgBox("您对查询内容三输入的字符串过长,请重新输入", vbOKOnly, "警告!")
Exit Function
End If End If
QuerryOK = True
End Function Public Function ModifyFild(ByVal QUerryCompositon As Entity.Entity_QueryCompositon) As Entity.Entity_QueryCompositon Dim tempString As String
Dim CombineString As New Entity.Entity_QueryCompositon
Select Case QUerryCompositon.FiledName1
''''''''''''''学生信息维护的字段修改''''''''''''''''''''''''''
Case "学号"
tempString = "studentNo"
Case "卡号"
tempString = "cardno"
Case "性别"
tempString = "sex"
Case "年级"
tempString = "grade"
Case "班级"
tempString = "class"
Case "姓名"
tempString = "studentName"
Case "余额"
tempString = "cash" ''''''''''''学生上机记录的字段更改'''''''''''''''''
Case "上机日期"
tempString = "ondate"
Case "上机时间"
tempString = "ontime"
Case "下机日期"
tempString = "offdate"
Case "下机时间"
tempString = "offtime"
Case "消费金额"
tempString = "consume" ''''''''''''''操作员工作记录字段''''''''''''''''''''''
Case "教师"
tempString = "UserID"
Case "级别"
tempString = "Level"
Case "注册日期"
tempString = "LoginDate"
Case "注册时间"
tempString = "LoginTime"
Case "注销日期"
tempString = "LogoutDate"
Case "注销时间"
tempString = "LogoutTime"
Case "机器名"
tempString = "computer" Case Else
tempString = ""
End Select
CombineString.FiledName1 = tempString '修改第一个字符串的名称 Select Case QUerryCompositon.FiledName2
Case "学号"
tempString = "studentNo"
Case "卡号"
tempString = "cardno"
Case "性别"
tempString = "sex"
Case "年级"
tempString = "grade"
Case "班级"
tempString = "class"
Case "姓名"
tempString = "studentName"
Case "余额"
tempString = "cash" ''''''''''''学生上机记录的字段更改'''''''''''''''''
Case "上机日期"
tempString = "ondate"
Case "上机时间"
tempString = "ontime"
Case "下机日期"
tempString = "offdate"
Case "下机时间"
tempString = "offtime"
Case "消费金额"
tempString = "consume" ''''''''''''''操作员工作记录字段''''''''''''''''''''''
Case "教师"
tempString = "UserID"
Case "级别"
tempString = "Level"
Case "注册日期"
tempString = "LoginDate"
Case "注册时间"
tempString = "LoginTime"
Case "注销日期"
tempString = "LogoutDate"
Case "注销时间"
tempString = "LogoutTime"
Case "机器名"
tempString = "computer" Case Else
tempString = ""
End Select
CombineString.FiledName2 = tempString Select Case QUerryCompositon.FiledName3
Case "学号"
tempString = "studentNo"
Case "卡号"
tempString = "cardno"
Case "性别"
tempString = "sex"
Case "年级"
tempString = "grade"
Case "班级"
tempString = "class"
Case "姓名"
tempString = "studentName"
Case "余额"
tempString = "cash" ''''''''''''学生上机记录的字段更改'''''''''''''''''
Case "上机日期"
tempString = "ondate"
Case "上机时间"
tempString = "ontime"
Case "下机日期"
tempString = "offdate"
Case "下机时间"
tempString = "offtime"
Case "消费金额"
tempString = "consume" ''''''''''''''操作员工作记录字段''''''''''''''''''''''
Case "教师"
tempString = "UserID"
Case "级别"
tempString = "Level"
Case "注册日期"
tempString = "LoginDate"
Case "注册时间"
tempString = "LoginTime"
Case "注销日期"
tempString = "LogoutDate"
Case "注销时间"
tempString = "LogoutTime"
Case "机器名"
tempString = "computer" Case Else
tempString = ""
End Select
CombineString.FiledName3 = tempString Select Case QUerryCompositon.Combine1
Case "与"
tempString = "and"
Case "或"
tempString = "or"
Case Else
tempString = ""
End Select
CombineString.Combine1 = tempString Select Case QUerryCompositon.Combine2
Case "与"
tempString = "and"
Case "或"
tempString = "or"
Case Else
tempString = "" End Select
CombineString.Combine2 = tempString 'Select Case QUerryCompositon.Operator1
' Case "="
' tempString = "like"
' CombineString.Operator1 = tempString
' Case Else
' tempString = ""
' CombineString.Operator1 = QUerryCompositon.Operator1
'End Select 'Select Case QUerryCompositon.Operator2
' Case "="
' tempString = "like"
' CombineString.Operator2 = tempString
' Case Else
' tempString = ""
' CombineString.Operator2 = QUerryCompositon.Operator2
'End Select 'Select Case QUerryCompositon.Operator3
' Case "="
' tempString = "like"
' CombineString.Operator3 = tempString
' Case Else
' tempString = ""
' CombineString.Operator3 = QUerryCompositon.Operator3
'End Select '''''''将未替换的字符仍然保留为原来字符''''''''''''''''''''''' CombineString.QueryContent1 = QUerryCompositon.QueryContent1
CombineString.QueryContent2 = QUerryCompositon.QueryContent2
CombineString.QueryContent3 = QUerryCompositon.QueryContent3 CombineString.Operator1 = QUerryCompositon.Operator1
CombineString.Operator2 = QUerryCompositon.Operator2
CombineString.Operator3 = QUerryCompositon.Operator3
Return CombineString End Function Public Function QuerryOperator(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryOperator
Dim DQueryOperator As New DAL.DAL_QuerryCompositon
Dim table As New DataTable
table = DQueryOperator.QuerryOperator(QuerryCompositon)
Return table
End Function Public Function QuerryStuInfo(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryStuInfo
Dim DQueryStu As New DAL.DAL_QuerryCompositon
Dim table As New DataTable
table = DQueryStu.QuerryStuInfo(QuerryCompositon)
Return table
End Function Public Function QuerryStuUp(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryStuUp
Dim DQueryStuUP As New DAL.DAL_QuerryCompositon
Dim table As New DataTable
table = DQueryStuUP.QuerryStuUp(QuerryCompositon)
Return table
End Function
End Class
3、D层
'/*************************************************
'作者:金福林
'小组: 无
'说明:组合查询D层
'创建日期:2014/5/5 21:02:58
'版本号:1.1.0
'**********************************************/ Public Class DAL_QuerryCompositon
Implements IDAL.IDAL_QuerryCompositon Public Function QuerryOperator(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryOperator
Dim strcon As String
Dim sqlHelper As New SqlHelper
If QuerryCompositon.Combine1 = "" Then '如果第一个组合框为空
strcon = "select * from worklog_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "'"
Else
If QuerryCompositon.Combine2 = "" Then '如果第一个不为空,第二个组合框为空 strcon = "select * from worklog_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "'"
Else '如果两个组合框都不为空
strcon = "select * from worklog_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "' " & QuerryCompositon.Combine2 _
& " " & QuerryCompositon.FiledName3 & " " & QuerryCompositon.Operator3 & "'" & QuerryCompositon.QueryContent3 & "'"
End If
End If Return sqlHelper.ExecSelect(strcon, CommandType.Text)
End Function Public Function QuerryStuInfo(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryStuInfo
Dim strcon As String
Dim sqlHelper As New SqlHelper
If QuerryCompositon.Combine1 = "" Then '如果第一个组合框为空
strcon = "select * from student_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "'"
Else
If QuerryCompositon.Combine2 = "" Then '如果第一个不为空,第二个组合框为空 strcon = "select * from student_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "'"
Else '如果两个组合框都不为空
strcon = "select * from student_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "' " & QuerryCompositon.Combine2 _
& " " & QuerryCompositon.FiledName3 & " " & QuerryCompositon.Operator3 & "'" & QuerryCompositon.QueryContent3 & "'"
End If
End If Return sqlHelper.ExecSelect(strcon, CommandType.Text)
End Function Public Function QuerryStuUp(ByVal QuerryCompositon As Entity.Entity_QueryCompositon) As System.Data.DataTable Implements IDAL.IDAL_QuerryCompositon.QuerryStuUp
Dim strcon As String
Dim sqlHelper As New SqlHelper
If QuerryCompositon.Combine1 = "" Then '如果第一个组合框为空
strcon = "select * from Line_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "'"
Else
If QuerryCompositon.Combine2 = "" Then '如果第一个不为空,第二个组合框为空 strcon = "select * from Line_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "'"
Else '如果两个组合框都不为空
strcon = "select * from Line_Info where " & QuerryCompositon.FiledName1 & " " & QuerryCompositon.Operator1 _
& "'" & QuerryCompositon.QueryContent1 & "' " & QuerryCompositon.Combine1 & " " & QuerryCompositon.FiledName2 _
& " " & QuerryCompositon.Operator2 & "'" & QuerryCompositon.QueryContent2 & "' " & QuerryCompositon.Combine2 _
& " " & QuerryCompositon.FiledName3 & " " & QuerryCompositon.Operator3 & "'" & QuerryCompositon.QueryContent3 & "'"
End If
End If Return sqlHelper.ExecSelect(strcon, CommandType.Text)
End Function
End Class
4、实体层
'/*************************************************
'作者:金福林
'小组: 无
'说明:用于组合查询的类
'创建日期:2014/5/5 20:01:08
'版本号:1.1.0
'**********************************************/ Public Class Entity_QueryCompositon
Private e_FiledName1 As String '字段1
Public Property FiledName1 As String
Get
Return Me.e_FiledName1
End Get
Set(ByVal value As String)
Me.e_FiledName1 = value
End Set
End Property Private e_FiledName2 As String '字段名2
Public Property FiledName2 As String
Get
Return Me.e_FiledName2
End Get
Set(ByVal value As String)
Me.e_FiledName2 = value
End Set
End Property Private e_FiledName3 As String '字段名3
Public Property FiledName3 As String
Get
Return Me.e_FiledName3
End Get
Set(ByVal value As String)
Me.e_FiledName3 = value
End Set
End Property Private e_Operator1 As String '操作符1
Public Property Operator1 As String
Get
Return Me.e_Operator1
End Get
Set(ByVal value As String)
Me.e_Operator1 = value
End Set
End Property Private e_Operator2 As String '操作符2
Public Property Operator2 As String
Get
Return Me.e_Operator2
End Get
Set(ByVal value As String)
Me.e_Operator2 = value
End Set
End Property Private e_Operator3 As String '操作符3
Public Property Operator3 As String
Get
Return Me.e_Operator3
End Get
Set(ByVal value As String)
Me.e_Operator3 = value
End Set
End Property Private e_QueryContent1 As String '查询内容1
Public Property QueryContent1 As String
Get
Return Me.e_QueryContent1
End Get
Set(ByVal value As String)
Me.e_QueryContent1 = value
End Set
End Property Private e_QueryContent2 As String '查询内容2
Public Property QueryContent2 As String
Get
Return Me.e_QueryContent2
End Get
Set(ByVal value As String)
Me.e_QueryContent2 = value
End Set
End Property Private e_QueryContent3 As String '查询内容3
Public Property QueryContent3 As String
Get
Return Me.e_QueryContent3
End Get
Set(ByVal value As String)
Me.e_QueryContent3 = value
End Set
End Property Private e_CompositionRelation1 As String '组合关系1
Public Property Combine1 As String
Get
Return Me.e_CompositionRelation1
End Get
Set(ByVal value As String)
Me.e_CompositionRelation1 = value
End Set
End Property Private e_CompositionRelation2 As String '组合关系2
Public Property Combine2 As String
Get
Return Me.e_CompositionRelation2
End Get
Set(ByVal value As String)
Me.e_CompositionRelation2 = value
End Set
End Property
End Class
5、接口层
Imports Entity
Public Interface IDAL_QuerryCompositon
' Function isEmpty(ByVal QuerryCompositon As Entity_QueryCompositon) As String
' Function CombineString(ByVal QuerryCompositon As Entity_QueryCompositon) As String
' Function ModifyFild(ByVal QUerryCompositon As Entity_QueryCompositon) As Entity_QueryCompositon
Function QuerryStuInfo(ByVal QuerryCompositon As Entity_QueryCompositon) As DataTable
Function QuerryStuUp(ByVal QuerryCompositon As Entity_QueryCompositon) As DataTable
Function QuerryOperator(ByVal QuerryCompositon As Entity_QueryCompositon) As DataTable
End Interface
6、sqlhelper类在我上篇博客中已经写到
http://blog.csdn.net/jinfulin/article/details/25072239
对于这么多代码,可能大家第一次看有点头大,大家主要看实体层和D层,不要照搬,领会思想,理解了之后就会觉得很简单了。
vb.net机房收费系统之组合查询的更多相关文章
- VB.NET+三层 机房收费系统之组合查询
关系组合查询已经用去了4天的时间.每天都在痛苦中煎熬,绞尽脑汁,一句代码都要瞪大眼睛看好长时间,有时候.由于两句话颠倒了.就nothing了:有时候,由于table如何可以转换成实体类型.将自己困住了 ...
- VB.NET 机房收费系统项目总结
VB.NET机房收费系统项目总结 从2013年5月3日——2013年8月20日历时三个多月的.NET机房收费系统终于完成了.项目做完了,真有一种如释重负的感觉. 下面我将从文档.UML图,代码这三个方 ...
- VB.NET<机房收费系统个人重构版>你都学会了什么(之五)
接着上篇我们说的配置文件,今天我们来说一下接口. 1.UML图 2.三层架构 3.Sqlhelper 4.配置文件 5.接口 6.设计模式 什么是接口呢?我们可以将接口理解为用于沟通的中介的抽象化.可 ...
- vb.net机房收费系统——存储过程
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xdd19910505/article/details/35574125 一.使用背景 ...
- 小结:VB.NET机房收费系统个人版
经过几天的缝缝补补,自己的个人版最终OK了,!或许是由于有第一次的机房收费系统的经验,这次做,感觉很亲切. 在业务逻辑方面,沿袭曾经的逻辑.做了一点升级.可是修改不大. 在数据库方面,感觉自己从一个小 ...
- VB.NET机房收费系统总结
总感觉这次机房收费系统非常有份量,一直没有下手总结,从2014-7-27至2014-9-29.这中间有太多故事和成长.首先说一下两次机房收费系统的不同,它是我们从面向过程向面向对象的一个转变.在.NE ...
- 【vb.net机房收费系统】之没有包含要从继承的组件的已生成程序集 标签: vb.net继承 2015-05-02 15:19 1012人阅读
在敲到组合查询这个功能的时候,需要用到窗体的继承,但是在新建继承窗体的时候,出现了错误(没有包含要从继承的组件的已生成程序集).如下图: 问题的产生:当时没怎么注意,也不知道怎么弄的,最后反正是继承上 ...
- 【vb.net机房收费系统】之sqlhelper 标签: 数据库 2015-05-17 10:47 819人阅读 评论(15)
在敲机房收费重构版的时候,用到了sqlhelper,当时不知道怎么开始,各种听别人说,张晗说,一定要用sqlhelper,特别好用,我当时没有用balabala~当时一听,哎哎哎,这个高级,要搞一搞, ...
- vb.net机房收费系统之配置文件
总是听到说用反射+配置文件访问数据库,那配置文件到底什么东西? 1.定义: 配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置, ...
随机推荐
- HDU 3586 Information Disturbing (二分+树形dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3586 给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏 ...
- sqlserver锁表、解锁、查看锁表
sqlserver锁表.解锁.查看锁表 http://www.cnblogs.com/zfanlong1314/p/3698566.html http://www.cnblogs.com/chjf20 ...
- 负margin使用权威指南
自CSS2早在1998年,推荐表的使用已经慢慢褪色成背景和历史书中.正因为如此,CSS布局从那时起一直编码优雅的代名词. 的所有CSS概念设计师所使用,奖项可能需要给负margin的使用是最至少谈论的 ...
- UVA 12901 Refraction 几何/大雾题
Refraction Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...
- NAVICATE 修改存储过程提示PROCEDURE _Navicat_Temp_Stored_Proc already exists 解决方法
推测是navicate修改存储过程会自动名为_Navicat_Temp_Stored_Proc的存储过程 创建完毕后自动drop 由于某些原因或bug导致最终没有drop,于是修改存储过程失败. 所以 ...
- C#程序通过模板自动创建Word文档
引言:前段时间有项目要用c#生成Word格式的计算报告,通过网络查找到很多内容,但是都很凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的交流和以后相似问题可以迅速的解决! 现通过具体的示例演示 ...
- 如何选择Javascript模板引擎(javascript template engine)?
译者 jjfat 日期:2012-9-17 来源: GBin1.com 随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下: ...
- TP复习6
## ThinkPHP 3.1.2 查询方式#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.普通查询方式 a.字符串 $arr=$m->wher ...
- vs2012运行c语言出现:无法查找或打开 PDB 文件
1.点 调试2.然后 选项和设置3.右边勾上 启用源服务器支持4.左边点 符号5.把微软符号服务器勾6.运行的时候等一下 莫慌!!7.问题解决
- acdreamoj1108(The kth number)
题目链接:http://acdream.info/problem? pid=1108 题意:n个数的数列,m次查询某个区间出现次数第k多的数出现的次数.n,m<=100000 解法:这个由于是离 ...