インターネット接続が確立されているかどうかを確認できるようにコードを作成したいと思います。その後、通常はサーバー上のデータベースにレコードを保存しますが、接続が失われるたびに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;
}
したがって、コードのこの部分はサーバーに置かれます。接続が確立されていない場合、おそらくエラーが発生するため、特別な接続チェックを行うべきではありません。
接続に応じてローカルデータベースに保存を追加したいので、接続=失われました(ローカルデータベースに保存)、接続=確立されました(ローカルデータベースが空かどうかを最初に確認します=サーバーデータベースにコピーされていない場合は、サーバーで記録を続けます)