有的电脑在使用过程中,时间会变得不正确,要么快了,要么慢了,为避免时间错误,可以参考服务器时间,核对本机时间,如果时间相差不过10秒就任务本机时间时正确的。
具体实现代码如下,创建静态类MyServer.cs
//获取数据库中的当前时间
public static class MyServer
{
static string connectString = “Data Source=服务器名称;Initial Catalog=数据库名称;User ID=xxx;Password=xxxxx”;
public static object Get_ServerTime()
{
try
{
using (SqlConnection cnn = new SqlConnection(connectString))
{
string sql = "SELECT SYSDATETIME() ";
cnn.Open();
using (SqlCommand cmd = new SqlCommand(sql, cnn))
{
object obj = cmd.ExecuteScalar();
return obj;
}
}
}
catch (Exception)
{
return null;
}
}
}
关键时连接到服务器,执行时间查询SQL语句,返回Object对象,在将该对象转换为时间字符串。
后台代码:
public DateTime serverTime { get; set; }
public DateTime pcTime { get; set; }
pcTime = DateTime.Now;
//1 检查数据库服务器时间和本地时间差异
object obj = MyServer.Get_ServerTime(); // 获取数据库返回的时间对象
if (obj == null)
{
txtMsg.AppendText($“获取数据库时间失败!”);
}
else
{
serverTime = Convert.ToDateTime(obj); //将对象转换为时间
txtServerPcTime.Text = Convert.ToDateTime(obj).ToString();//
}
//时间差
TimeSpan ts = pcTime - serverTime;
txtDiff.Text = Math.Abs(ts.TotalSeconds) + “秒”; //界面UI显示时间差
依据实际的需求,可判断时间差多少是允许的,否则重启电脑,同步时间。