我想让我的代码能够检查是否建立了互联网连接。之后,我通常会将记录保存在服务器上的数据库中,但我希望能够在每次连接丢失时将记录保存在 pc 上的本地数据库中,并且在服务器上的每个正常连接之前检查本地数据库是否为空并且将所有内容从本地数据库复制到服务器数据库。
这是我现在使用的代码:
//open database connection
con = new MySqlConnection("server=192...;database=GPS_data;uid=root;pwd=******");
con.Open();
//check if card reader is loged
if (card_number != null)
{
cmd = new MySqlCommand("insert into data values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", con);
cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
cmd.Parameters.Add("?Parname2", MySqlDbType.Double).Value = Math.Round(deciLon, 5);
cmd.Parameters.Add("?Parname3", MySqlDbType.Timestamp).Value = DateTime.Now;
cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = card_number;
cmd.Parameters.Add("?Parname5", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("reg");
cmd.Parameters.Add("?Parname6", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("ser");
cmd.Parameters.Add("?Parname7", MySqlDbType.Double).Value = ellipHeight;
cmd.ExecuteNonQuery();
lastDBUpdate = DateTime.Now;
}
else //in the case when user is not logged in with the card
{
cmd = new MySqlCommand("insert into data values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", con);
cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
cmd.Parameters.Add("?Parname2", MySqlDbType.Double).Value = Math.Round(deciLon, 5);
cmd.Parameters.Add("?Parname3", MySqlDbType.Timestamp).Value = DateTime.Now;
cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = null;
cmd.Parameters.Add("?Parname5", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("reg");
cmd.Parameters.Add("?Parname6", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("reg");
cmd.Parameters.Add("?Parname7", MySqlDbType.Double).Value = ellipHeight;
cmd.ExecuteNonQuery();
lastDBUpdate = DateTime.Now;
}
所以这部分代码在服务器上。我的意思是不应该有任何特殊的连接检查,因为如果没有建立连接,这可能会导致错误。
我想根据连接添加保存到本地数据库,所以连接=丢失(保存在本地数据库中),连接=建立(首先检查本地数据库是否为空=如果不复制到服务器数据库,继续在服务器上记录)