如何将串行数据流保存到sql数据库

巴什金·贝克特西

我在存储来自arduino防风雨罩的数据时遇到问题。我正在将数据作为数组并将其转换为字符串,但是我的问题是存储它,我再次检查了与ms sql的连接,并且工作正常。我认为问题出在timeStamp中,但我不知道如何解决

这是主要代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using weathertest.Serial;
using System.Configuration;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Timers;




namespace weathertest 
{

    public partial class Form1 : Form
    {

        serialmanager _spManager;
        public Form1()
        {
            InitializeComponent();

            UserInitialization();
            _spManager.StartListening();
        }

        private void UserInitialization()
        {
            _spManager = new serialmanager();
            serialconfig mySerialSettings = _spManager.CurrentSerialSettings;
            serialSettingsBindingSource.DataSource = mySerialSettings;


            _spManager.NewSerialDataRecieved += new EventHandler<SerialDataEventArgs>(_spManager_NewSerialDataRecieved);
            this.FormClosing += new FormClosingEventHandler(MainForm_FormClosing);
        }



        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            _spManager.Dispose();
        }
        public static String GetTimestamp(DateTime value) {
            return value.ToString("dd-MM-yyyy HH:mm:ss");//yyyyMMddHHmmssffff
        }
        void _spManager_NewSerialDataRecieved(object sender, SerialDataEventArgs e)
        {
            if (this.InvokeRequired)
            {
                // Using this.Invoke causes deadlock when closing serial port, and BeginInvoke is good practice anyway.
                this.BeginInvoke(new EventHandler<SerialDataEventArgs>(_spManager_NewSerialDataRecieved), new object[] { sender, e });
                return;
            }

            int maxTextLength = 1000; // maximum text length in text box
            if (tbData.TextLength > maxTextLength)
                tbData.Text = tbData.Text.Remove(0, tbData.TextLength - maxTextLength);

            // This application is connected to a GPS sending ASCCI characters, so data is converted to text
            string str = e.Data;
            tbData.AppendText(str);
            tbData.ScrollToCaret();
            string strValue = str;
            string[] strArray = strValue.Split(' ');

            try
            {

                foreach (object obj in strArray)
                {
                    string constring = "Data Source=BASHKIM;Initial Catalog=Weather;Integrated Security=True";
                    SqlConnection conn = new SqlConnection(constring);
                    conn.Open();
                    String timeStamp = GetTimestamp(DateTime.Now);

                    label1.Text =  (strArray[0]);
                    label2.Text =  (strArray[1]);
                    label3.Text =  (strArray[2]);
                    label4.Text =  (strArray[3]);
                    label5.Text =  (strArray[4]);
                    label6.Text =  (strArray[5]);
                    label7.Text =  (strArray[6]);
                    label8.Text =  (strArray[7]);
                    label9.Text =  (strArray[8]);
                    label10.Text = (strArray[9]);
                    label11.Text = (strArray[10]);
                    label12.Text = (strArray[11]);
                    label13.Text = (strArray[12]);
                    label14.Text = (strArray[13]);
                    label15.Text = (strArray[14]);
                    label16.Text = timeStamp;




                    string query1 = @"INSERT INTO daily (winddir,windspeedmph,windgustdir,windspdmph_avg2m,windgustdir_10m,winddir_avg2m,humidity,tempf,rainin,dailyrainin,pressure,batt_lvl,light_lvl,timeStamp) values ("
      + label1.Text + "," + label2.Text + "," + label3.Text + "," + label4.Text + "," + label5.Text + "," + label6.Text + "," + label7.Text + "," + label8.Text + "," + label9.Text + "," + label10.Text + "," + label11.Text + "," + label12.Text + "," + label3.Text + "," + label14.Text + "," + label16.Text + ")";
                    conn.Close();
                }
                    richD.AppendText(str);
                    richD.ScrollToCaret();


            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message); 
            }



        }


        private void button1_Click(object sender, EventArgs e)
        {
            _spManager.StartListening();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'weatherDataSet2.daily' table. You can move, or remove it, as needed.
            //this.dailyTableAdapter.Fill(this.weatherDataSet2.daily);
            // TODO: This line of code loads data into the 'weatherDataSet.daily' table. You can move, or remove it, as needed.
          //  this.dailyTableAdapter.Fill(this.weatherDataSet.daily);


        }
    }
}

这是我的数据库:

数据库图片

希望有人可以帮助

消费者

query1是一个字符串。它包含SQL。您忘记了在该字符串中执行SQL。您需要创建一个SqlCommand并执行它。

using(var cmd = new SqlCommand(query1, conn))
{
    cmd.ExecuteNonQuery();
}

作为旁白:

您应该在数据库中使用数字类型存储数字数据,否则查询数据将是一个庞大的PITA。

您的数据似乎走的很奇怪。首先,将其复制到UI。然后,将其从UI复制到数据库。为什么不将数据一次复制到UI,一次复制到数据库?

您正在紧紧地在UI线程上更新UI。这不会更新您的UI,因为您的UI线程在循环中很忙。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将日期保存到 SQL 数据库?

来自分类Dev

如何将PhoneNumberField数据保存到数据库?

来自分类Dev

Portia,如何将数据保存到数据库?

来自分类Dev

如何将代码段保存到数据库?

来自分类Dev

如何将python的输出保存到数据库?

来自分类Dev

如何将图像保存到数据库?

来自分类Dev

如何将输入保存到数据库

来自分类Dev

Laravel,如何将DomDocument保存到数据库?

来自分类Dev

如何将数组从 MATLAB 保存到数据库?

来自分类Dev

AWS:如何将流数据保存到EC2上托管的数据库(例如MySQL / MongoDB)

来自分类Dev

如何将GridView中的选中行保存到SQL数据库

来自分类Dev

如何将Joda Date持久保存到sql数据库?

来自分类Dev

将Doobie流从数据库保存到文件

来自分类Dev

如何将本地数据从服务器数据库保存到本地数据库?

来自分类Dev

如何将PHP会话数据保存到数据库而不是文件系统中?

来自分类Dev

Angular / Breeze:如何将BreezeController中的数据直接保存到数据库

来自分类Dev

在zend Framework 2中如何将字段集数据保存到数据库

来自分类Dev

规范:如何将HTML表单数据保存到MySQL数据库中

来自分类Dev

如何将ckeditor内部提供的数据保存到数据库中

来自分类Dev

如何将复选框数组中的数据保存到数据库中

来自分类Dev

如何将数组索引数据保存到单独行中的数据库?

来自分类Dev

如何将未知数据类型保存到数据库?

来自分类Dev

如何将动态添加的部分视图数据保存到数据库

来自分类Dev

如何将ckeditor内部提供的数据保存到数据库中

来自分类Dev

如何将数据从phpmyadmin数据库保存到pdf?

来自分类Dev

如何将URL中的XmL数据保存到数据库中

来自分类Dev

如何将Nokogiri的抓取数据保存到Rails数据库中?

来自分类Dev

Yii2 如何将接收到的 JSON 数据保存到数据库中

来自分类Dev

我如何将数据保存到使用 fetch 创建的数据库中

Related 相关文章

  1. 1

    如何将日期保存到 SQL 数据库?

  2. 2

    如何将PhoneNumberField数据保存到数据库?

  3. 3

    Portia,如何将数据保存到数据库?

  4. 4

    如何将代码段保存到数据库?

  5. 5

    如何将python的输出保存到数据库?

  6. 6

    如何将图像保存到数据库?

  7. 7

    如何将输入保存到数据库

  8. 8

    Laravel,如何将DomDocument保存到数据库?

  9. 9

    如何将数组从 MATLAB 保存到数据库?

  10. 10

    AWS:如何将流数据保存到EC2上托管的数据库(例如MySQL / MongoDB)

  11. 11

    如何将GridView中的选中行保存到SQL数据库

  12. 12

    如何将Joda Date持久保存到sql数据库?

  13. 13

    将Doobie流从数据库保存到文件

  14. 14

    如何将本地数据从服务器数据库保存到本地数据库?

  15. 15

    如何将PHP会话数据保存到数据库而不是文件系统中?

  16. 16

    Angular / Breeze:如何将BreezeController中的数据直接保存到数据库

  17. 17

    在zend Framework 2中如何将字段集数据保存到数据库

  18. 18

    规范:如何将HTML表单数据保存到MySQL数据库中

  19. 19

    如何将ckeditor内部提供的数据保存到数据库中

  20. 20

    如何将复选框数组中的数据保存到数据库中

  21. 21

    如何将数组索引数据保存到单独行中的数据库?

  22. 22

    如何将未知数据类型保存到数据库?

  23. 23

    如何将动态添加的部分视图数据保存到数据库

  24. 24

    如何将ckeditor内部提供的数据保存到数据库中

  25. 25

    如何将数据从phpmyadmin数据库保存到pdf?

  26. 26

    如何将URL中的XmL数据保存到数据库中

  27. 27

    如何将Nokogiri的抓取数据保存到Rails数据库中?

  28. 28

    Yii2 如何将接收到的 JSON 数据保存到数据库中

  29. 29

    我如何将数据保存到使用 fetch 创建的数据库中

热门标签

归档