001.
Imports
System.Data
002.
Imports
System.Data.SqlClient
003.
Imports
VB = Microsoft.VisualBasic
004.
Imports
System.IO.Ports
005.
Imports
System.Threading
006.
Imports
System.ComponentModel
007.
Imports
System
008.
009.
Public
Class
Form1
010.
011.
Dim
sqlcon
As
SqlConnection
012.
Dim
sqlcmd
As
SqlCommand
013.
Dim
ds
As
DataSet
014.
Dim
da
As
SqlDataAdapter
015.
Dim
myPort
As
Array
016.
Delegate
Sub
SetTextCallback(
ByVal
[text]
As
String
)
017.
018.
019.
Private
Sub
Form1_Load(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
MyBase
.Load
020.
myPort = IO.Ports.SerialPort.GetPortNames()
021.
cmbBaud.Items.Add(9600)
022.
cmbBaud.Items.Add(19200)
023.
cmbBaud.Items.Add(38400)
024.
cmbBaud.Items.Add(57600)
025.
cmbBaud.Items.Add(115200)
026.
For
i = 0
To
UBound(myPort)
027.
cmbPort.Items.Add(myPort(i))
028.
Next
029.
cmbPort.Text = cmbPort.Items.Item(0)
030.
cmbBaud.Text = cmbBaud.Items.Item(0)
031.
032.
btnDisconnect.Enabled =
False
033.
Try
034.
sqlcon =
New
SqlConnection(
"Server=TOSHIBA-PC\SQLEXPRESS;Database=parking;Trusted_Connection=True;"
)
035.
sqlcon.Open()
036.
037.
038.
039.
Call
showdata2()
040.
041.
Catch
ex
As
Exception
042.
MsgBox(
"Error"
)
043.
End
Try
044.
End
Sub
045.
Sub
showdata2()
046.
ds =
New
DataSet
047.
da =
New
SqlDataAdapter(
"SELECT * FROM inout;"
, sqlcon)
048.
da.Fill(ds,
"inout"
)
049.
050.
051.
DataGridView1.DataSource = ds.Tables(
"inout"
)
052.
End
Sub
053.
054.
Sub
cleardata()
055.
txtSN.Clear()
056.
End
Sub
057.
Private
Sub
btnConnect_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
btnConnect.Click
058.
SerialPort1.PortName = cmbPort.Text
059.
SerialPort1.BaudRate = cmbBaud.Text
060.
061.
062.
SerialPort1.Parity = IO.Ports.Parity.None
063.
SerialPort1.StopBits = IO.Ports.StopBits.One
064.
SerialPort1.DataBits = 8
065.
SerialPort1.Open()
066.
067.
btnConnect.Enabled =
False
068.
btnDisconnect.Enabled =
True
069.
End
Sub
070.
Private
Sub
btnDisconnect_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
btnDisconnect.Click
071.
SerialPort1.Close()
072.
073.
btnConnect.Enabled =
True
074.
btnDisconnect.Enabled =
False
075.
End
Sub
076.
077.
Private
Sub
Timer1_Tick(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
Timer1.Tick
078.
Label3.Text = TimeOfDay
079.
Label4.Text =
Date
.Today
080.
Label9.Text =
Date
.Today
081.
Label10.Text = TimeOfDay
082.
End
Sub
083.
Private
Sub
SerialPort1_DataReceived(
ByVal
sender
As
Object
,
ByVal
e
As
System.IO.Ports.SerialDataReceivedEventArgs)
Handles
SerialPort1.DataReceived
084.
ReceivedText(SerialPort1.ReadExisting())
085.
End
Sub
086.
Private
Sub
ReceivedText(
ByVal
[text]
As
String
)
087.
088.
If
Me
.txtSN.InvokeRequired
Then
089.
Dim
x
As
New
SetTextCallback(
AddressOf
ReceivedText)
090.
Me
.Invoke(x,
New
Object
() {(text)})
091.
Else
092.
Me
.txtSN.Text &= [text]
093.
End
If
094.
End
Sub
095.
096.
097.
Private
Sub
cmbPort_SelectedIndexChanged(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
cmbPort.SelectedIndexChanged
098.
If
SerialPort1.IsOpen =
False
Then
099.
SerialPort1.PortName = cmbPort.Text
100.
Else
101.
MsgBox(
"port is Closed"
, vbCritical)
102.
End
If
103.
End
Sub
104.
Private
Sub
cmbBaud_SelectedIndexChanged(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
cmbBaud.SelectedIndexChanged
105.
If
SerialPort1.IsOpen =
False
Then
106.
SerialPort1.BaudRate = cmbBaud.Text
107.
Else
108.
MsgBox(
"port is Closed"
, vbCritical)
109.
End
If
110.
End
Sub
111.
112.
Private
Sub
txtSN_TextChanged(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
txtSN.TextChanged
113.
If
txtSN.Text <>
""
Then
114.
Dim
dt
As
String
115.
dt = DateTime.Now.ToString(
"dd-MM-yyyy HH:mm:ss"
)
116.
Dim
strSQL
As
String
117.
Dim
intNumRows
As
Integer
118.
sqlcon =
New
SqlConnection(
"Server=TOSHIBA-PC\SQLEXPRESS;Database=parking;Trusted_Connection=True;"
)
119.
sqlcon.Open()
120.
strSQL =
"SELECT COUNT(*) FROM member WHERE CardSN = '"
& txtSN.Text &
"'"
121.
sqlcmd =
New
SqlCommand(strSQL, sqlcon)
122.
intNumRows = sqlcmd.ExecuteScalar()
123.
If
intNumRows > 0
Then
124.
Thread.Sleep(1000)
125.
ds =
New
DataSet
126.
da =
New
SqlDataAdapter(
"INSERT INTO inout (CardSN,dtin) VALUES ('"
& txtSN.Text &
"','"
& dt &
"');"
, sqlcon)
127.
da.Fill(ds,
"inout"
)
128.
Call
showdata2()
129.
SerialPort1.Write(
"a"
)
130.
Else
131.
SerialPort1.Write(
"s"
)
132.
End
If
133.
End
If
134.
sqlcon.Close()
135.
136.
End
Sub
137.
End
Class