现在已经通过调用sdk接口,获得温湿度信息,点击启动按钮后,每三秒钟可以接收数据,现在需要将数据存入数据库(暂时的思路是设计一个保存按钮 ,点击按钮后存入数据,但一直保存不了),请指导,提出更好的思路可以实时添加到数据库。(这是保存按钮的点击事件,请指导)
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更新。而不是判断表中有数据就提示插入失败,自己误导自己,要提示也是提示 数据库表已经存在数据
好的,谢谢解答,已解决