C# 获取数据库服务器时间

有的电脑在使用过程中,时间会变得不正确,要么快了,要么慢了,为避免时间错误,可以参考服务器时间,核对本机时间,如果时间相差不过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显示时间差

依据实际的需求,可判断时间差多少是允许的,否则重启电脑,同步时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值