我想每秒添加到我的本地数据库,实时数据,唯一的方法是计时器,但是,我不知道我可以在哪里声明该类,以及我如何使用它
备注:cn
是SQL连接
private void button2_Click(object sender, EventArgs e)
{
cn.Open();
try
{
MySqlCommand cmd = new MySqlCommand("insert into supervision values("...........')", cn);
/
cmd.ExecuteNonQuery();
}
catch (MySqlException ex)
{
if (ex.Number == 2627)
{
MySqlCommand cmd2 = new MySqlCommand("insert into supervision values(" +.......')", cn);
cmd2.ExecuteNonQuery();
}
}
cn.Close();
MessageBox.Show("database added");
}
答案 0 :(得分:1)
2-将Interval设为1秒
3-处理Elapsed事件
4-使用lock使方法线程安全,这样就不会有2个定时器同时插入数据库。
var mytimer = new System.Timers.Timer(1000);
mytimer.Elapsed += Mytimer_Elapsed;
mytimer.Start();
private static object lockobject = new object();
private static void Mytimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
lock(lockobject)
{
cn.Open();
try
{
MySqlCommand cmd = new MySqlCommand("insert into supervision values("...........')", cn);
/
cmd.ExecuteNonQuery();
}
catch (MySqlException ex)
{
if (ex.Number == 2627)
{
MySqlCommand cmd2 = new MySqlCommand("insert into supervision values(" +.......')", cn);
cmd2.ExecuteNonQuery();
}
}
cn.Close();
MessageBox.Show("database added");
}
}
答案 1 :(得分:0)
将代码放入函数中。然后在intwrval设置为1000
的计时器内调用该函数