16,722
社区成员




Imports System.Data.OleDb
Public Class frmMain
Dim strDataReceived As String
Dim CONNECTION_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
'或者写出实际的数据库文件地址,无密码的:="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
Dim MyConnection As New OleDbConnection(CONNECTION_STRING) '实例化连接对象
Dim MyCommand As OleDbCommand
Dim SQLString As String
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim PortNameList As String() = IO.Ports.SerialPort.GetPortNames
Dim Port As String
cboPortNo.Items.Clear()
For Each Port In PortNameList
cboPortNo.Items.Add(Port)
Next
End Sub
Private Sub btnPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPort.Click
Try
If SerialPort.IsOpen = True Then
SerialPort.Close()
btnPort.Enabled = True
btnClose.Enabled = False
End If
With SerialPort
.PortName = cboPortNo.Text.Trim
.BaudRate = cboBps.Text.Trim
.DataBits = cboDataBits.Text.Trim
Select Case cboParity.Text.Trim
Case "Even"
.Parity = IO.Ports.Parity.Even
Case "Odd"
.Parity = IO.Ports.Parity.Odd
Case "None"
.Parity = IO.Ports.Parity.None
Case "Mark"
.Parity = IO.Ports.Parity.Mark
Case "Space"
.Parity = IO.Ports.Parity.Space
End Select
Select Case cboStopBits.Text.Trim
Case "None"
.StopBits = IO.Ports.StopBits.None
Case "1"
.StopBits = IO.Ports.StopBits.One
Case "1.5"
.StopBits = IO.Ports.StopBits.OnePointFive
Case "2"
.StopBits = IO.Ports.StopBits.Two
End Select
Select Case cboHandShake.Text.Trim
Case "Xon/Xoff"
.Handshake = IO.Ports.Handshake.XOnXOff
Case "Hardware"
.Handshake = IO.Ports.Handshake.RequestToSend
Case "None"
.Handshake = IO.Ports.Handshake.None
End Select
End With
SerialPort.Open()
btnPort.Enabled = False
btnClose.Enabled = True
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.OkOnly)
Exit Sub
End Try
End Sub
'********************************************************************************
'保存数据事件
Private Sub SaveData(ByVal _data As String)
'或者用字符串, 数据库中相应字段类型也要改为文本
Dim data As String = _data
Dim m As Integer = 0 '记录SQL语句执行行数
SQLString = "INSERT INTO tb(ID1) VALUES('" & data & "')" 'Test.mdb中 tb表
MyConnection.Open() '打开数据连接
MyCommand = New OleDbCommand(SQLString, MyConnection) '定义新的操作命令
Try '尝试执行
m = MyCommand.ExecuteNonQuery() '执行插入操作,并返回受影响的行数
Catch ex As Exception '获取异常
MsgBox(ex.ToString) '显示异常信息
End Try
If m = 1 Then
MsgBox("保存数据成功")
Else
MsgBox("保存数据失败")
End If
MyConnection.Close() '关闭连接
MyCommand.Dispose() '释放对象
End Sub
'****************************************************************************************
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
Try
If SerialPort.IsOpen = True Then
SerialPort.Close()
btnClose.Enabled = False
btnPort.Enabled = True
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.OkOnly)
Exit Sub
End Try
End Sub
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
Dim strDataOut As String
Try
If SerialPort.IsOpen = True Then
strDataOut = txtDataOut.Text
SerialPort.Write(strDataOut + vbCr)
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.OkOnly)
Exit Sub
End Try
End Sub
'==============================
' Serial Port
' Receiving of data
'==============================
Private Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
strDataReceived = strDataReceived + SerialPort.ReadExisting()
'***********************************
'添加保存数据事件
SaveData(txtDataReceived.Text)
'***********************************
End Sub
Private Sub tmrDataReceived_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrDataReceived.Tick
If SerialPort.IsOpen = True Then
txtDataReceived.Text = strDataReceived
End If
End Sub
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
End Sub
End Class
Imports System.Data.OleDb
Public Class Form1
Dim strData As String
Dim strDat As String
Dim strDate As String
Dim mRecvByte() As Byte
'Application.StartupPath:程序启动目录,带密码
Dim CONNECTION_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
'或者写出实际的数据库文件地址,无密码的:="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
Dim MyConnection As New OleDbConnection(CONNECTION_STRING) '实例化连接对象
Dim MyCommand As OleDbCommand
Dim SQLString As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1 '初始化串口数
cboCommPorts.Items.Add(My.Computer.Ports.SerialPortNames(i))
Next
Button2.Enabled = False
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '连接
If SerialPort1.IsOpen Then
SerialPort1.Close()
End If
Try
With SerialPort1 '初始化串口设置
.PortName = cboCommPorts.Text
.BaudRate = 9600
.Parity = IO.Ports.Parity.None '无校验位
.DataBits = 8
.StopBits = IO.Ports.StopBits.One '停止位1位
.ReadBufferSize = 1024 '接收缓冲区大小
End With
SerialPort1.Open()
lblMessage.Text = SerialPort1.PortName & " connected"
Button2.Enabled = True
Button1.Enabled = False
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '断开
Try
SerialPort1.Close()
lblMessage.Text = SerialPort1.PortName & " disconnected"
Button2.Enabled = False
Button1.Enabled = True
Catch ex As Exception
End Try
End Sub
Public Sub updateTextBox(ByVal sender As System.Object, ByVal e As System.EventArgs) 'ascII.10进制与16进制显示
strDat = ""
textbox1.Text = ""
Dim i As Integer '处理为16进制
For i = 0 To UBound(mRecvByte) 'mSize - 1
'strData = strData & IIf(mRecvByte(i) > 15, Hex(mRecvByte(i)), "0" & Hex(mRecvByte(i))) & " " 滚动显示模式
strData = IIf(mRecvByte(i) > 15, Hex(mRecvByte(i)), "0" & Hex(mRecvByte(i))) & " " '静止显示模式
strDate = mRecvByte(i) '处理为10进制
Next
Dim sj As Byte
For i = 1 To Len(strData) Step 3 '处理为ASCII字符
sj = Val("&H" & Mid(strData, i, 2))
If sj < 32 Or sj > 128 Then '当接收字节中有Chr(0)时,其后字符被切割
'strDat = strDat & "."
strDat = "."
Else
'strDat = strDat & Chr(sj)
strDat = Chr(sj)
End If
Next
textbox1.Text = strDat '显示字符
TextBox2.Text = strData '显示为16进制
TextBox3.Text = strDate '显示为10进制
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim mSize As Integer = Me.SerialPort1.BytesToRead
ReDim mRecvByte(mSize - 1)
SerialPort1.Read(mRecvByte, 0, mSize)
BeginInvoke(New EventHandler(AddressOf updateTextBox), SerialPort1.BytesToRead()) '使用委托方式显示接收到的字符串
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '退出
Me.Close()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'Int64最大值为 9,223,372,036,854,775,807;即十六进制的 0x7FFFFFFFFFFFFFFF
'可以保存15位数据
'Dim data As Int64 = 123456789012345
'或者用字符串, 数据库中相应字段类型也要改为文本
Dim data As String = TextBox2.Text
Dim m As Integer = 0 '记录SQL语句执行行数
SQLString = "INSERT INTO tb(ID1) VALUES('" & data & "')" 'Test.mdb中 tb表
MyConnection.Open() '打开数据连接
MyCommand = New OleDbCommand(SQLString, MyConnection) '定义新的操作命令
Try '尝试执行
m = MyCommand.ExecuteNonQuery() '执行插入操作,并返回受影响的行数
Catch ex As Exception '获取异常
MsgBox(ex.ToString) '显示异常信息
End Try
If m = 1 Then
MsgBox("保存数据成功")
Else
MsgBox("保存数据失败")
End If
MyConnection.Close() '关闭连接
MyCommand.Dispose() '释放对象
End Sub
End Class
Imports System.Data.OleDb
Public Class Form5
Dim strData As String
Dim strDat As String
Dim strDate As String
Dim mRecvByte() As Byte
'Application.StartupPath:程序启动目录,带密码
Dim CONNECTION_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
'或者写出实际的数据库文件地址,无密码的:="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
Dim MyConnection As New OleDbConnection(CONNECTION_STRING) '实例化连接对象
Dim MyCommand As OleDbCommand
Dim SQLString As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1 '初始化串口数
cboCommPorts.Items.Add(My.Computer.Ports.SerialPortNames(i))
Next
Button2.Enabled = False
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '连接
If SerialPort1.IsOpen Then
SerialPort1.Close()
End If
Try
With SerialPort1 '初始化串口设置
.PortName = cboCommPorts.Text
.BaudRate = 9600
.Parity = IO.Ports.Parity.None '无校验位
.DataBits = 8
.StopBits = IO.Ports.StopBits.One '停止位1位
.ReadBufferSize = 1024 '接收缓冲区大小
End With
SerialPort1.Open()
lblMessage.Text = SerialPort1.PortName & " connected"
Button2.Enabled = True
Button1.Enabled = False
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '断开
Try
SerialPort1.Close()
lblMessage.Text = SerialPort1.PortName & " disconnected"
Button2.Enabled = False
Button1.Enabled = True
Catch ex As Exception
End Try
End Sub
'********************************************************************************
'保存数据事件
Private Sub SaveData(ByVal _data As String)
'或者用字符串, 数据库中相应字段类型也要改为文本
Dim data As String = _data
Dim m As Integer = 0 '记录SQL语句执行行数
SQLString = "INSERT INTO tb(ID1) VALUES('" & data & "')" 'Test.mdb中 tb表
MyConnection.Open() '打开数据连接
MyCommand = New OleDbCommand(SQLString, MyConnection) '定义新的操作命令
Try '尝试执行
m = MyCommand.ExecuteNonQuery() '执行插入操作,并返回受影响的行数
Catch ex As Exception '获取异常
MsgBox(ex.ToString) '显示异常信息
End Try
If m = 1 Then
MsgBox("保存数据成功")
Else
MsgBox("保存数据失败")
End If
MyConnection.Close() '关闭连接
MyCommand.Dispose() '释放对象
End Sub
'****************************************************************************************
Public Sub updateTextBox(ByVal sender As System.Object, ByVal e As System.EventArgs) 'ascII.10进制与16进制显示
strDat = ""
textbox1.Text = ""
Dim i As Integer '处理为16进制
For i = 0 To UBound(mRecvByte) 'mSize - 1
'strData = strData & IIf(mRecvByte(i) > 15, Hex(mRecvByte(i)), "0" & Hex(mRecvByte(i))) & " " 滚动显示模式
strData = IIf(mRecvByte(i) > 15, Hex(mRecvByte(i)), "0" & Hex(mRecvByte(i))) & " " '静止显示模式
strDate = mRecvByte(i) '处理为10进制
Next
Dim sj As Byte
For i = 1 To Len(strData) Step 3 '处理为ASCII字符
sj = Val("&H" & Mid(strData, i, 2))
If sj < 32 Or sj > 128 Then '当接收字节中有Chr(0)时,其后字符被切割
'strDat = strDat & "."
strDat = "."
Else
'strDat = strDat & Chr(sj)
strDat = Chr(sj)
End If
Next
textbox1.Text = strDat '显示字符
TextBox2.Text = strData '显示为16进制
TextBox3.Text = strDate '显示为10进制
'***********************************
'添加保存数据事件
SaveData(TextBox2.Text)
'***********************************
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim mSize As Integer = Me.SerialPort1.BytesToRead
ReDim mRecvByte(mSize - 1)
SerialPort1.Read(mRecvByte, 0, mSize)
BeginInvoke(New EventHandler(AddressOf updateTextBox), SerialPort1.BytesToRead()) '使用委托方式显示接收到的字符串
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '退出
Me.Close()
End Sub
End Class
Imports System.Data.OleDb
Public Class Form4
'Application.StartupPath:程序启动目录,带密码
Dim CONNECTION_STRING As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\Test.mdb;Jet OLEDB:Database Password=admin"
'或者写出实际的数据库文件地址,无密码的:="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Test.mdb"
Dim MyConnection As New OleDbConnection(CONNECTION_STRING) '实例化连接对象
Dim MyCommand As OleDbCommand
Dim SQLString As String
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Int64最大值为 9,223,372,036,854,775,807;即十六进制的 0x7FFFFFFFFFFFFFFF
'可以保存15位数据
Dim data As Int64 = 123456789012345
'或者用字符串,数据库中相应字段类型也要改为文本
'Dim data as string="123456789012345"
Dim m As Integer = 0 '记录SQL语句执行行数
SQLString = "INSERT INTO tb(ID1) VALUES('" & data & "')" 'Test.mdb中 tb表
MyConnection.Open() '打开数据连接
MyCommand = New OleDbCommand(SQLString, MyConnection) '定义新的操作命令
Try '尝试执行
m = MyCommand.ExecuteNonQuery() '执行插入操作,并返回受影响的行数
Catch ex As Exception '获取异常
MsgBox(ex.ToString) '显示异常信息
End Try
If m = 1 Then
MsgBox("保存数据成功")
Else
MsgBox("保存数据失败")
End If
MyConnection.Close() '关闭连接
MyCommand.Dispose() '释放对象
End Sub
End Class