新聞中心
Visual Studio 2023串口接收數(shù)據(jù)并保存至數(shù)據(jù)庫

隨著技術的不斷發(fā)展,串口通信已成為廣泛應用于各種設備之間數(shù)據(jù)傳輸?shù)囊环N方法。因此,如何在 Visual Studio 2023 中通過串口接收來自設備的數(shù)據(jù)并將其保存至數(shù)據(jù)庫,成為了開發(fā)人員不可避免的問題。
本文將演示如何使用 Visual Studio 2023 通過串口接收數(shù)據(jù)并將其存儲在數(shù)據(jù)庫中。
之一步:創(chuàng)建數(shù)據(jù)庫
在 Visual Studio 2023 中,需要打開“數(shù)據(jù)”窗口并右鍵單擊“添加新數(shù)據(jù)源”。
在彈出的“添加新數(shù)據(jù)源向?qū)А敝?,選擇“數(shù)據(jù)庫”并單擊“下一步”。
在“數(shù)據(jù)源配置向?qū)А敝?,選擇“Microsoft SQL Server”作為數(shù)據(jù)源類型,并單擊“下一步”。
接下來,需要指定數(shù)據(jù)庫連接。在“連接屬性”中,輸入服務器名稱、身份驗證和數(shù)據(jù)庫名稱,單擊“測試連接”,確保連接成功,然后單擊“下一步”。
在“選擇要在應用程序中使用的數(shù)據(jù)庫對象”中選擇要使用的表或視圖。在本例中,我們將創(chuàng)建一個新表,因此選擇“新建查詢”。
在“查詢設計器”中輸入以下 SQL 語句來創(chuàng)建一個名為“SerialData”的新表:
CREATE TABLE SerialData(
ID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
ReceivedData VARCHAR(50) NOT NULL,
ReceivedTime datetime NOT NULL
)
單擊“運行查詢”以創(chuàng)建表并單擊“完成”。
現(xiàn)在,可以在數(shù)據(jù)庫“Server Explorer”中查看新創(chuàng)建的表,以確保它已成功創(chuàng)建。
第二步:創(chuàng)建窗體
現(xiàn)在需要創(chuàng)建一個 Windows 窗體,以顯示從串口接收的數(shù)據(jù)。
在 Visual Studio 2023 中,選擇“文件”>“新建”>“項目”,然后選擇“Visual C#”>“Windows 窗體應用程序”,并鍵入項目名稱。單擊“確定”以創(chuàng)建項目。
在 Form1 上滾動到“工具箱”,找到“串口”控件并將其拖動到窗體上。
在窗體上單擊“串口控件”并選擇“屬性”。在“屬性”窗口中,將“端口”屬性更改為適當?shù)拇卸丝?,如“COM1”或“COM2”,選擇適當?shù)牟ㄌ芈剩纭?600”,并將“數(shù)據(jù)位”、“奇偶校驗”和“停止位”設置為與使用的設備匹配的值。將“接收到”事件的“委托”連接到窗體代碼中的相應函數(shù):
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
// Take action once data has been received.
}
此函數(shù)會在接收到串行端口數(shù)據(jù)時被調(diào)用。
現(xiàn)在,需要添加保存從串口接收的數(shù)據(jù)到數(shù)據(jù)庫的代碼。將以下代碼添加到窗體的“serialPort1_DataReceived”函數(shù)中:
string data = serialPort1.ReadExisting();
string time = DateTime.Now.ToString();
SqlCommand cmd = new SqlCommand(“INSERT INTO SerialData (ReceivedData,ReceivedTime) VALUES(‘” + data +”‘,'” + time + “‘)”, conn);
cmd.ExecuteNonQuery();
此代碼將讀取來自串口的現(xiàn)有數(shù)據(jù),創(chuàng)建一個包含所讀取數(shù)據(jù)和當前時間的 SQL 查詢,并將其執(zhí)行以將數(shù)據(jù)存儲在數(shù)據(jù)庫中。
在窗體頂部添加以下名稱空間:
using System.Data.SqlClient;
現(xiàn)在,需要連接到數(shù)據(jù)庫以保存數(shù)據(jù)。對于此例,將使用 SQL Server 進行連接。在窗體的類定義部分,聲明一個 SqlConnection 變量:
SqlConnection conn = new SqlConnection(“Server=;Database=;User Id=;Password=;”);
請使用正確的服務器名稱、數(shù)據(jù)庫名稱、用戶名和密碼替換代碼中的占位符。將此代碼添加到窗體的“Form_Load”函數(shù)中以打開數(shù)據(jù)庫連接:
conn.Open();
恭喜!現(xiàn)在,您已完成了從串口接收數(shù)據(jù)并將其保存到數(shù)據(jù)庫的任務?,F(xiàn)在可以運行程序并在串口接收數(shù)據(jù)時,在“SerialData”表中看到這些數(shù)據(jù)的條目。
相關問題拓展閱讀:
- VB 串口 十六進制通訊,VS2023環(huán)境,serialport控件,現(xiàn)在能發(fā)送接收中文,怎樣才能發(fā)送十六進制數(shù)據(jù)?
- 如何用vs連接SQL數(shù)據(jù)庫
VB 串口 十六進制通訊,VS2023環(huán)境,serialport控件,現(xiàn)在能發(fā)送接收中文,怎樣才能發(fā)送十六進制數(shù)據(jù)?
怎樣才能發(fā)送十六進制數(shù)據(jù)?用森卜字節(jié)數(shù)組,握前也可發(fā)送16進此皮穗制串,看需要選擇。
百度: 通訊 字節(jié)數(shù)組 vb
應該有一大片
例如發(fā)送十六進制:
只型差要螞悄在前面加&H即可。
Dim TestArray() As String = Split(“”悶租渣)
Dim hexBytes() As Byte
ReDim hexBytes(TestArray.Length – 1)
Dim i As Integer
For i = 0 To TestArray.Length – 1
hexBytes(i) = Val(“&H” & TestArray(i))
Next
SerialPort.Write(hexBytes, 0, hexBytes.Length)
如何用vs連接SQL數(shù)據(jù)庫
連接你的數(shù)據(jù)庫的位置,加他的唯祥 連接條件就可以拉指圓搏下面是一個連接數(shù)據(jù)庫的模塊,大家腔畢可以使用它來連接SQL數(shù)據(jù)庫,使用起來比ADO控件還簡單:
代碼如下:
Public rsNew As ADODB.Recordset
Public CnNew As ADODB.Connection
Public addFlag As Boolean
‘連接數(shù)據(jù)庫
Public Function OpenCn() As Boolean
Dim Mag As String
On Error GoTo strErrMag
Set CnNew = New ADODB.Connection
CnNew. = 25
CnNew.Provider = “sqloledb”
CnNew.Properties(“data source”).value = “” ‘SQL服務器的名
CnNew.Properties(“initial catalog”).value = “pubs”‘庫名
CnNew.Properties(“integrated security”).value = “SSPI”‘登陸類型
‘con.Properties(“user id”).value = “sa”
‘con.Properties(“password”).value = “wwww”
CnNew.Open
OpenCn = True
addFlag = True
Exit Function
strErrMag:
Mag = “數(shù)據(jù)庫末連接”
Call MsgBox(Mag, vbOKCancel, “錯誤:數(shù)據(jù)庫連接”)
addFlag = False
End
End Function
Public Sub Clocn()
‘閉關數(shù)據(jù)庫
On Error Resume Next
If CnNew.State Then CnNew.Close
Set CnNew = Nothing
End Sub
Public Function OpenRs(ByVal strSql As String) As Boolean
‘連接數(shù)據(jù)庫記錄集
Dim Mag As String
Dim rpy As Boolean
On Error GoTo strErrMag
Set rsNew = New ADODB.Recordset
If addFlag = False Then rpy = OpenCn
With rsNew
= CnNew
= adUseClient
CursorType =
LockType =
Open strSql
End With
addFlag = True
OpenRs = True
Exit Function
strErrMag:
Mag = “數(shù)據(jù)庫數(shù)據(jù)集末連接”
Call MsgBox(Mag, vbOKOnly, “錯誤:數(shù)據(jù)庫連接”)
OpenRs = False
End
End Function
Public Sub cloRs()
‘閉關數(shù)據(jù)集
On Error Resume Next
If rsNew.State Then rsNew.Close
Set rsNew = Nothing
End Sub
vs2023串口接收數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于vs2023串口接收數(shù)據(jù)庫,VS2023串口接收數(shù)據(jù)并保存至數(shù)據(jù)庫,VB 串口 十六進制通訊,VS2023環(huán)境,serialport控件,現(xiàn)在能發(fā)送接收中文,怎樣才能發(fā)送十六進制數(shù)據(jù)?,如何用vs連接SQL數(shù)據(jù)庫的信息別忘了在本站進行查找喔。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設、網(wǎng)站維護、網(wǎng)站改版的網(wǎng)站建設公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務。
網(wǎng)頁名稱:VS2023串口接收數(shù)據(jù)并保存至數(shù)據(jù)庫(vs2023串口接收數(shù)據(jù)庫)
標題來源:http://fisionsoft.com.cn/article/dpdidse.html


咨詢
建站咨詢
