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.
Private
Sub
Form1_Load(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
MyBase
.Load
019.
myPort = IO.Ports.SerialPort.GetPortNames()
020.
cmbBaud.Items.Add(9600)
021.
cmbBaud.Items.Add(19200)
022.
cmbBaud.Items.Add(38400)
023.
cmbBaud.Items.Add(57600)
024.
cmbBaud.Items.Add(115200)
025.
For
i = 0
To
UBound(myPort)
026.
cmbPort.Items.Add(myPort(i))
027.
Next
028.
cmbPort.Text = cmbPort.Items.Item(0)
029.
cmbBaud.Text = cmbBaud.Items.Item(0)
030.
031.
btnDisconnect.Enabled =
False
032.
Try
033.
sqlcon =
New
SqlConnection(
"Server=TOSHIBA-PC\SQLEXPRESS;Database=parking;Trusted_Connection=True;"
)
034.
sqlcon.Open()
035.
036.
MsgBox(
"เชื่อมต่อฐานข้อมูลแล้ว"
)
037.
038.
Call
showdata2()
039.
040.
Catch
ex
As
Exception
041.
MsgBox(
"Error"
)
042.
End
Try
043.
End
Sub
044.
Sub
showdata2()
045.
ds =
New
DataSet
046.
da =
New
SqlDataAdapter(
"SELECT * FROM inout;"
, sqlcon)
047.
da.Fill(ds,
"inout"
)
048.
049.
050.
DataGridView1.DataSource = ds.Tables(
"inout"
)
051.
End
Sub
052.
Private
Sub
btnConnect_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
btnConnect.Click
053.
SerialPort1.PortName = cmbPort.Text
054.
SerialPort1.BaudRate = cmbBaud.Text
055.
056.
057.
SerialPort1.Parity = IO.Ports.Parity.None
058.
SerialPort1.StopBits = IO.Ports.StopBits.One
059.
SerialPort1.DataBits = 8
060.
SerialPort1.Open()
061.
062.
btnConnect.Enabled =
False
063.
btnDisconnect.Enabled =
True
064.
End
Sub
065.
Private
Sub
btnDisconnect_Click(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
btnDisconnect.Click
066.
SerialPort1.Close()
067.
068.
btnConnect.Enabled =
True
069.
btnDisconnect.Enabled =
False
070.
End
Sub
071.
072.
Private
Sub
Timer1_Tick(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
Timer1.Tick
073.
Label3.Text = TimeOfDay
074.
Label4.Text =
Date
.Today
075.
Label9.Text =
Date
.Today
076.
Label10.Text = TimeOfDay
077.
End
Sub
078.
Private
Sub
SerialPort1_DataReceived(
ByVal
sender
As
Object
,
ByVal
e
As
System.IO.Ports.SerialDataReceivedEventArgs)
Handles
SerialPort1.DataReceived
079.
ReceivedText(SerialPort1.ReadExisting())
080.
End
Sub
081.
Private
Sub
ReceivedText(
ByVal
[text]
As
String
)
082.
083.
Dim
dt
As
String
084.
dt = DateTime.Now.ToString(
"dd-MM-yyyy HH:mm:ss"
)
085.
Dim
strSQL
As
String
086.
Dim
intNumRows
As
Integer
087.
sqlcon =
New
SqlConnection(
"Server=TOSHIBA-PC\SQLEXPRESS;Database=parking;Trusted_Connection=True;"
)
088.
sqlcon.Open()
089.
strSQL =
"SELECT COUNT(*) FROM member WHERE CardSN = '"
& txtSN.Text &
"'"
090.
sqlcmd =
New
SqlCommand(strSQL, sqlcon)
091.
intNumRows = sqlcmd.ExecuteScalar()
092.
If
Me
.txtSN.InvokeRequired
Then
093.
Dim
x
As
New
SetTextCallback(
AddressOf
ReceivedText)
094.
Me
.Invoke(x,
New
Object
() {(text)})
095.
If
intNumRows > 0
Then
096.
ds =
New
DataSet
097.
da =
New
SqlDataAdapter(
"INSERT INTO inout (CardSN,dtin) VALUES ('"
& txtSN.Text &
"','"
& dt &
"');"
, sqlcon) 'บันทึกเวลาเมื่อกดปุ่ม เข้า
098.
da.Fill(ds,
"inout"
)
099.
Call
showdata2()
100.
SerialPort1.Write(
"a"
)
101.
Else
102.
SerialPort1.Write(
"b"
)
103.
End
If
104.
Else
105.
Me
.txtSN.Text &= [text]
106.
End
If
107.
sqlcon.Close()
108.
End
Sub
109.
Private
Sub
cmbPort_SelectedIndexChanged(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
cmbPort.SelectedIndexChanged
110.
If
SerialPort1.IsOpen =
False
Then
111.
SerialPort1.PortName = cmbPort.Text
112.
Else
113.
MsgBox(
"port is Closed"
, vbCritical)
114.
End
If
115.
End
Sub
116.
Private
Sub
cmbBaud_SelectedIndexChanged(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
cmbBaud.SelectedIndexChanged
117.
If
SerialPort1.IsOpen =
False
Then
118.
SerialPort1.BaudRate = cmbBaud.Text
119.
Else
120.
MsgBox(
"port is Closed"
, vbCritical)
121.
End
If
122.
End
Sub
123.
End
Class