如何根据不同的互联网连接在不同的数据库保存数据 [英] How to save data in the different database depending on the internet connection

查看:153
本文介绍了如何根据不同的互联网连接在不同的数据库保存数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要让我的代码能够检查是否建立网络连接。
之后,我通常会保存在服务器上的数据库记录,但我希望能够保存在PC上每次本地数据库的连接丢失记录,并在服务器上检查,如果当地每个正常的连接之前, 。数据库是空的,然后复制一切从本地数据库服务器的数据库

I want to make my code to be able to check if internet connection is established. After that I will normally save records in the database on the server, but I want to be able to save records in the local database on pc everytime the connection is lost and before every normal connection on the server check if the local database is empty and copy everything from local database to server database.

下面是我的代码,我现在使用的:

Here is my code that I use now:

//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;
}



所以这部分代码的推移在服务器上。
我的意思是不应该有任何特殊的连接检查,因为这可能会用,如果没有建立连接的错误造成的。

So this part of the code goes on the server. I mean there shouldn't be any special connection check as this would probably result with an error if connection is not established.

我要添加保存到本地数据库根据连接,所以连接=丢失(保存在本地DATABSE),连接=建立(首先检查本地数据库为空=如果没有复制到服务器数据库,继续记录在服务器上)

I want to add saving to a local database depending on connection, so connection=lost ( save in the local databse), connection=established(first check if local database is empty= if not copy to server database, continue recording on server)

推荐答案

创建一个函数Ge​​tConnectionString(),利用此功能来总是连接。

Create a function GetConnectionString() and use this function to get connection always.

写下该代码来检查网络是否存在,并返回关于此基础上的连接。

Write down the code to check for internet existence and return the connection on basis of that.

public string GetConnectionString()
    {
        string SqlConString1 = value;//Read from config
        string SqlConString2 = value;//Read from config
        WebClient client = new WebClient();
        try
        {
            using (client.OpenRead("http://www.google.com"))
            {
            }
            return SqlConString1 ;
        }
        catch (WebException)
        {
            return SqlConString2 ;
        }
    }

转寄此更多的代码来检查互联网连接1

请参阅本作更多的代码来检查互联网连接2

转寄此更多的代码来检查互联网连接3

这篇关于如何根据不同的互联网连接在不同的数据库保存数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆