传感器采集来的数据怎么插入到数据库中?

传感器采集来的数据怎么插入到数据库中?,第1张

把传感器的采集的数据传入数据库,可以通过C#编程和ZIGBEE技术来实现啊,可以用visual stdio 2008或2010把串口程序写好,然后把用IAR 写好的软件下到目标板中就是ZigBee开发板,

程序中需要添加连接到数据库的函数,先建好数据库以及你要采集的信息数据的一个综合的表格,就是数据库中表格的各项列值,这个列的名称和串口程序里的值是一致的,附上代码表示

using System.Data.SqlClient

public partial class Form1 : Form

    {

        string ConStr

        SqlConnection conn

        public Form1()

        {

            InitializeComponent()

        }

private void button1_Click(object sender, EventArgs e)

        {

            ConStr = "server=.database=StudendIntegrated Security=SSPI"

            conn = new SqlConnection(ConStr)

conn.Open()

            string name = textBox1.Text

            name = "'" + name + "'"

            string passwd = textBox2.Text

try

            {

                SqlCommand sqlcom = new SqlCommand("insert into luo(name,password) values(" + name + " ," + passwd + ")", conn)

                sqlcom.ExecuteNonQuery()

                MessageBox.Show("连接成功!", "!")

            } catch (Exception a)

            {

                MessageBox.Show("未添加!","!")

            }

}

private void Form1_Load(object sender, EventArgs e)

        {

           

            ConStr = "server=.database=StudendIntegrated Security=SSPI"

            conn = new SqlConnection(ConStr)

conn.Open()

if (conn.State == ConnectionState.Open)

            {

                label5.Text = "连接成功并打开数据库"

                //conn.Close()

            }

        }

private void button3_Click(object sender, EventArgs e)

        {

            ConStr = "server=.database=StudendIntegrated Security=SSPI"

            conn = new SqlConnection(ConStr)

conn.Open()

if (conn.State == ConnectionState.Open)

            {

                label5.Text = "连接成功并打开数据库"

                //conn.Close()

            }

          

           

        }

private void button2_Click(object sender, EventArgs e)

        {

ConStr = "server=.database=StudendIntegrated Security=SSPI"

            conn = new SqlConnection(ConStr)

            string name2 = textBox3.Text

                name2 = "'" + name2 + "'"

            conn.Open()

           

            try

            {

               

                SqlCommand sqlcom = new SqlCommand("delete from luo where name=" + name2, conn)

                int a=sqlcom.ExecuteNonQuery()

                if (a <=0)

                {MessageBox.Show("删除失败!","!")

                }

                else MessageBox.Show("删除成功!", "!")

                conn.Close()

            }

            catch (Exception a)

            {

               

                MessageBox.Show("未删除!","!")

            }

           

        }

你要达到的目的其实就是在jvm启动的时候把数据库数据加载一份到内存,一个静态变量和一个静态初始化块就可以搞定你的问题,这两者都是在类加载的时候初始化一次,像前面回答的一样,你可以用一个HashMap搞定。

稍微具体来说,一个静态变量

public static final Map<key,value>cache=new HashMap<key,value>()

static {

cache=请求数据库 *** 作

}

key你自己加,String还是int都行,value是你数据库的结构,可以写个实体。获取的时候直接cache.get(key)就可以了。

一般的设备都有随机软件,由于机器上没有主动的数据触发功能,一般只能又软件将数据传输到指定格式的数据库中,有可能是文本或其他,实时采集的时候只能是分析机器传到本地的文件内容,将需要的内容传到数据库,这是软件主动式的采集,而不是采集仪主动送到指定数据库。

另一种方式,通过厂家提供的接口程序,修改原有采集数据的保存方式,将采集到的数据格式化后存放到指定数据库表中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6844738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存