首页 > 解决方案 > 我不知道如何通过 Windows 窗体应用程序在 mySQL 表中正确分组我的串行数据

问题描述

我一直在使用串行终端与光学监视器的串行端口进行通信。我收到的数据可以使用 mySQL 连接器 NET 扩展插入到 mySQL 表中。我遇到的问题是,假设记录的透射率为 99.45%,终端将插入 9、9、.、4 和 5 作为单独的行。
数据由空格分隔,所以我认为能够识别这些空格并对数据进行分组可能会起作用,但我不知道如何去做。
form1.cs 中有很多代码用于终端上的其他功能,所以这是我认为相关的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
using MySql.Data.MySqlClient;




namespace CP_Serial_Port_Terminal
{
    public partial class Form1 : Form
    {
        string sendWith;
        string dataIN;
        int dataINLength;
        int[] dataInDec;
        


        StreamWriter objStreamWriter;
        string pathFile;
        bool state_AppendText = true;

        MySqlConnection myConnection;
        MySqlCommand myCommand;

private void SaveDataToMySqlDatabase()
        {
            if(saveToMySQLDatabaseToolStripMenuItem.Checked)
            {
                try
                {
                    
                    
                        myConnection = new MySqlConnection("server=localhost; username=****; password=****; port=3306; database=database01");
                        myConnection.Open();

                        myCommand = new MySqlCommand(string.Format("INSERT INTO `table01` (`Wavelength(nm)`,`R/T(%)`) VALUES ('','{0}')", dataIN), myConnection);

                        myCommand.ExecuteNonQuery();

                        myConnection.Close();

                        RefreshDataGridViewForm2();
                    
                }
                catch(Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }
        }
 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {


            List<int> dataBuffer = new List<int>();

            

            while (serialPort1.BytesToRead > 0)
            {
                try
                {
                    dataBuffer.Add(serialPort1.ReadByte());
                    
                    
                }
                catch(Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }

            dataINLength = dataBuffer.Count();
            dataInDec = new int[dataINLength];
            dataInDec = dataBuffer.ToArray();

            this.Invoke(new EventHandler(ShowData));
        }

我对 C# 比较陌生,并且一直在从事 Catur Pebriandani 在 YouTube 上所做的工作。这是完整串行终端的下载链接 - http://www.caturcreativeproject.com/2017/11/daftar-tutorial-pemrograman-visual-c.html查看第 13 号。
如果您有任何澄清问题,请问,我不确定在这个问题中包含多少。谢谢

标签: c#mysqlvisual-studioserial-port

解决方案


推荐阅读