c#如何将串口数据存入数据库


现在已经通过调用sdk接口,获得温湿度信息,点击启动按钮后,每三秒钟可以接收数据,现在需要将数据存入数据库(暂时的思路是设计一个保存按钮 ,点击按钮后存入数据,但一直保存不了),请指导,提出更好的思路可以实时添加到数据库。(这是保存按钮的点击事件,请指导)

img

private void btnsave_Click(object sender, EventArgs e)
        { 
            SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=TH;Integrated Security=True");
            string wsdxx = rhtResult.Text;
            string time = DateTime.Now.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
            bool IsNoRight = false;
            string sql = String.Format("SELECT * FROM wsd");
            IsNoRight = TemHum.DataBaseHelper.GetDataSet(sql).Tables[0].Rows.Count > 0;
            if (!IsNoRight)
            {
                sql = String.Format("INSERT INTO wsd(time,wsdxx) VALUES('{0}','{1}')",time,wsdxx);
                TemHum.DataBaseHelper.GetNonQueryEffectedRow(sql);
                MessageBox.Show(wsdxx + "添加成功!", "提示");
            }
            else
            {
                MessageBox.Show("添加失败!", "提示");
            }

        }

把需要执行的代码放在
try
{
需要执行的代码
}
catch( )
{

//这里抛出异常
}
快捷方式打出try 按两下tab键。
设置断点,进行逐步的调试。

保存不了,是说明报错了,你要看下具体哪行代码报错。一般来说,很容易出现连接对象为空,导致报错。

你并没有执行插入的sql,下面贴出的代码判断逻辑有错误,你这个代码判断只有wsd表没有数据的时候才会执行操作。。只能保存一次,后续在点击都是输出添加失败,这个错误并不是插入失败导致,是表里面有数据导致的

有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

            string sql = String.Format("SELECT * FROM wsd");
            IsNoRight = TemHum.DataBaseHelper.GetDataSet(sql).Tables[0].Rows.Count > 0;
            if (!IsNoRight)。。。。。。

如果只想保存一条数据,可以读取表判断为空就insert插入,否则update更新。而不是判断表中有数据就提示插入失败,自己误导自己,要提示也是提示 数据库表已经存在数据

好的,谢谢解答,已解决