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 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置, ...
随机推荐
- POJ1837 Balance(DP)
POJ1837http://poj.org/problem?id=1837 题目大意就是说有一个称上有C个挂钩,告诉你每个挂钩的位置,现在有G个重物,求是之平衡的方法数. 转化一下:DP[i][j]表 ...
- 自定义滚动控件(Pagecontrol)
// // MyPageCorol.h // lejiahui // // Created by iOS开发 on 16/4/10. // Copyright © 2016年 zhongmingwuy ...
- MyEclipse 8.6反编译插件安装
一.下载插件文件:jad.exe.jadeclipse http://www.varaneckas.com/sites/default/files/jad/jad158g.win.zip ...
- Lync2010升级到2013之账户启用!
打开ADUC,将用户添加到 csadministrator 组中:
- Nutch 2.2+MySQL+Solr4.2实现网站内容的抓取和索引
原文地址: http://blog.sina.com.cn/s/blog_3c9872d00101p4f0.html Nutch 2.2.1发布快两月了,该版本与Nutch之前版本相比,有较大变化,特 ...
- Why isn't there a SendThreadMessage function?
Here's an interesting customer question: Windows has PostMessage and SendMessage. It also has PostTh ...
- iframe式ajax调用示例
1.新建 a.html <!doctype html> <html> <head> <meta charset='utf-8'> <title&g ...
- Codeforces Good bye 2015 B. New Year and Old Property dfs 数位DP
B. New Year and Old Property 题目连接: http://www.codeforces.com/contest/611/problem/B Description The y ...
- Codeforces Round #309 (Div. 2) C. Kyoya and Colored Balls 排列组合
C. Kyoya and Colored Balls Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ...
- pthread_mutex_t
在Linux中使用线程 http://blog.csdn.net/jiajun2001/article/details/12624923 :LINUX就是这个范围作者 原创作品,允许转载,转载时 ...