关于客户端与数据库服务器端的时间同步问题

这是一个做C/S的管理软件开发时经常被忽略的问题,客户端的时间与服务器的时间如果有偏差,数据统计、报表等等肯定会有“意外”的情况发生。

意图很简单:从数据库服务器获取到时间,根据这个时间修改当前客户端电脑时间。

用Sql的函数getdate(),是比较容易的。

我们是基于dotnet4.0、EntityFramework开发软件,所以希望用ESQL的方式获取数据库服务器的时间,但昨天折腾了半天,还没搞定。

如果有哪位同学已经解决了这个问题,希望能指点一下!

暂时解决,之所以说是暂时,是因为并没有用Esql的方式,而是用T-Sql的方式。

以下是我的过程:

System.Data.EntityClient.EntityConnection   这个是实体概念模型与数据源的连接,继承自DbConnection

在这个连接下CreateCommand(),就需要写Esql语句,我的语句是"SELECT VALUE CurrentDateTime()",却是语法错误。翻遍了手册和网络查询,没有任何有用的结果。

但在这个连接对象下有一个属性StoreConnection,返回的是Sql方式的连接,在这个下面CreateCommand(),可以写T-Sql语句,我的语句是"SELECT getdate()",运行成功。

以上是程序代码例子:

 

  
  
// 与数据库服务器的时间进行同步

System.Data.EntityClient.EntityConnection conn = (System.Data.EntityClient.EntityConnection)Blemployee.myData.Connection;

IDbConnection conn0
= conn.StoreConnection;

IDbCommand comm
= conn0.CreateCommand();


// comm.CommandText = "SELECT VALUE CurrentDateTime()";

comm.CommandText = " SELECT getdate() " ;

comm.CommandType
= CommandType.Text;

if (comm.Connection.State != ConnectionState.Open)
comm.Connection.Open();

object tt = comm.ExecuteScalar();

DateTime sqlDT
= Convert.ToDateTime(tt);

SetLocalTime(sqlDT);
// 设置本机时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值