作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想让我的代码能够检查是否已建立互联网连接。之后我通常会在服务器上的数据库中保存记录,但我希望每次连接丢失时都能在 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;
}
所以这部分代码是放在服务器上的。我的意思是不应该进行任何特殊的连接检查,因为如果未建立连接,这可能会导致错误。
我想根据连接添加保存到本地数据库,所以连接=丢失(保存在本地数据库),连接=建立(首先检查本地数据库是否为空=如果没有复制到服务器数据库,继续记录服务器)
最佳答案
创建函数 GetConnectionString() 并使用此函数始终获取连接。
写下检查 Internet 是否存在并在此基础上返回连接的代码。
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 ;
}
}
Refer this for more code to check for internet connectivity 1
Refer this for more code to check for internet connectivity 2
Refer this for more code to check for internet connectivity 3
关于c# - 如何根据互联网连接将数据保存在不同的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10750532/
我是一名优秀的程序员,十分优秀!