📄 clsuser.vb
字号:
'****************************************************************************
'人人为我,我为人人
'枕善居汉化收藏整理
'发布日期:2007/07/23
'描 述:网吧计费管理系统客户端/服务器端
'网 站:http://www.Mndsoft.com/ (VB6源码博客)
'网 站:http://www.VbDnet.com/ (VB.NET源码博客,主要基于.NET2005)
'e-mail :Mndsoft@163.com
'e-mail :Mndsoft@126.com
'OICQ :88382850
' 如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************
Imports System.Net.Sockets
Imports System.Text
Public Class ClsUser
Public UserName As String
Public Password As String
Public RealName As String
Public Group As String
Public Fee As Double
Public BirthDate As String
Public Phone As String
Public ValidDate As String
Public CreateCardDate As String
Public CertificateType As String
Public CertificateNo As String
Public Address As String
Public PostCode As String
Public Memo As String
Public LoginTime As Date
Public LogoffTime As Date
Public Event LineRecived(ByVal sender As Object, ByVal data As String)
Const READ_BUFFER_SIZE As Integer = 255
Private readbuffer(READ_BUFFER_SIZE) As Byte
Private _Client As TcpClient
Public Sub Init(ByVal client As TcpClient)
_client = client
_client.GetStream.BeginRead(readbuffer, 0, READ_BUFFER_SIZE, AddressOf StreamReceiver, Nothing)
End Sub
Private Sub StreamReceiver(ByVal ar As IAsyncResult)
Dim BytesRead As Integer
Dim Message As String
SyncLock _client.GetStream
BytesRead = _client.GetStream.EndRead(ar)
End SyncLock
Message = Encoding.ASCII.GetString(readbuffer, 0, BytesRead)
RaiseEvent LineRecived(Me, Message)
_Client.GetStream.BeginRead(readbuffer, 0, READ_BUFFER_SIZE, AddressOf StreamReceiver, Nothing)
End Sub
Public Sub SendData(ByVal data As String)
Dim writer As New IO.StreamWriter(_client.GetStream)
writer.Write(data & Chr(13) & Chr(10))
writer.Flush()
End Sub
Function LogConfirm() As Integer
Dim RemainFee As Double
Dim SQLString As String
SQLString = "SELECT * FROM tbUser WHERE UserName='" & UserName & "'"
'SQL查询语句
Dim UserTable As DataTable = ClsDBOperation.DBOperate(SQLString)
If UserTable.Rows.Count = 0 Then
Return 0 '输入的编号或密码错误
End If
RemainFee = UserTable.Rows(0)("Fee")
If RemainFee <= 0 Then
Return -1 '余额不足
Else
Return 1 '成功退出
End If
End Function
Function UserExist() As Boolean
Dim SQLString As String
SQLString = "SELECT * FROM tbUser WHERE UserName='" & Trim(UserName) & "' "
Dim UserTable As DataTable = ClsDBOperation.DBOperate(SQLString)
If UserTable.Rows.Count <> 0 Then
Return True
Else
Return False
End If
End Function
Function Checkout() As Boolean
Dim UsedHour As TimeSpan
UsedHour = LogoffTime - LoginTime
Dim TotalHour As Double
TotalHour = UsedHour.TotalHours
If TotalHour < 0.5 Then
TotalHour = 0.5 '不足半小时,按半小时计算
End If
Dim Payment As Double
Dim TempFeeRules As New ClsFeeRules
TempFeeRules.Group = Group
TempFeeRules.GetAmount()
Payment = TotalHour * TempFeeRules.Amount
SetFee(-Payment)
Return True
End Function
Sub SetFee(ByVal NewFee As Double) '加款结帐的方法
Dim SQLString As String
SQLString = "SELECT Fee FROM tbUser WHERE UserName='" & UserName & "'"
Dim UserTable As DataTable = ClsDBOperation.DBOperate(SQLString)
Fee = NewFee + UserTable.Rows(0)(0)
SQLString = "UPDATE tbUser SET Fee='" & Fee & "'"
ClsDBOperation.DBOperate(SQLString)
End Sub
Sub AddUser()
Dim SQLString As String
SQLString = "INSERT INTO tbUser VALUES('" & UserName & "','" & Password & "','" & RealName & "','" & Group & "','" & Fee & "','" & BirthDate & "','" & Phone & "','" & ValidDate & "','" & CreateCardDate & "','" & CertificateType & "','" & CertificateNo & "','" & Address & "','" & PostCode & "','" & Memo & "')"
ClsDBOperation.DBOperate(SQLString)
End Sub
Sub AddFeeList(ByVal ComputerPos As String)
Dim SQLString As String
Dim UsedHour As TimeSpan
UsedHour = LogoffTime - LoginTime
Dim TotalHour As Double
TotalHour = UsedHour.TotalHours
SQLString = "INSERT INTO tbFeeList VALUES('" & UserName & "','" & LogoffTime & "','" & LogoffTime & "','" & TotalHour & "','" & Fee & "','" & ComputerPos & "')"
ClsDBOperation.DBOperate(SQLString)
End Sub
Public Sub Delete()
Dim SQLString As String
SQLString = "DELETE FROM tbUser WHERE UserName='" & UserName & "'"
ClsDBOperation.DBOperate(SQLString)
'还要删除该用户其它相关上机记录
End Sub
Public Sub GetInfo()
Dim SQLString As String
SQLString = "SELECT * FROM tbUser WHERE UserName='" & UserName & "'"
Dim DTable As DataTable = ClsDBOperation.DBOperate(SQLString)
UserName = DTable.Rows(0)("UserName")
Password = DTable.Rows(0)("Password")
RealName = DTable.Rows(0)("RealName")
Group = DTable.Rows(0)("Group")
Fee = DTable.Rows(0)("Fee")
BirthDate = DTable.Rows(0)("BirthDate")
Phone = DTable.Rows(0)("Phone")
ValidDate = DTable.Rows(0)("ValidDate")
CreateCardDate = DTable.Rows(0)("CreateCardDate")
CertificateType = DTable.Rows(0)("CertificateType")
CertificateNo = DTable.Rows(0)("CertificateNo")
Address = DTable.Rows(0)("Address")
PostCode = DTable.Rows(0)("PostCode")
Memo = DTable.Rows(0)("Memo")
End Sub
Function FeeList() As DataTable
Dim SQLString As String
SQLString = "SELECT UserName AS 用户名, Computer AS 计算机, LoginTime As 登录时间, LogoffTime As 下机时间, TotalHour As 使用时间, Fee As 费用 FROM tbFeeList WHERE UserName='" & UserName & "'"
Dim DTable As DataTable = ClsDBOperation.DBOperate(SQLString)
Return DTable
End Function
Shared Function LoadUser(ByVal Field As String, ByVal Value As String) As DataTable
Dim SQLString As String
Dim Column As String = ""
Column += "UserName AS 用户名, Password AS 密码,RealName AS 用户姓名,"
Column += "Group AS 用户类型, Fee AS 账号余额,"
Column += "BirthDate AS 出生日期, Phone AS 联系电话,"
Column += "ValidDate AS 有效日期, CertificateType AS 证件类型,"
Column += "CertificateNo AS 证件号码, Address AS 住址,"
Column += "PostCode AS 邮编, Memo AS 备注"
If Field = "" Then
SQLString = "SELECT " & Column & " FROM tbUser"
Else
SQLString = "SELECT " & Column & " FROM tbUser WHERE " & Field & "='" & Value & "'"
End If
Return ClsDBOperation.DBOperate(SQLString)
End Function
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -