sql server timestamp类型使用

 

一个表中只能有一个字段为timestamp类型,把字段设置为timestamp后,在表中进行新增和修改,数据库会给timestamp自动赋值。

time为timestamp类型,当修改这行数据时,他会改变。

 

使用:

当A和B同时打开编辑一行数据时,A编辑完后先保存,B后编辑完保存。B的数据就会覆盖A的数据。B在不知情的情况下覆盖了A输入的有用数据。

在表中添加timestamp列后,A和B同时打开的数据具有相同的时间戳,当A保存数据后,改变了改行数据的时间戳,B再保存,会发现现在数据库的时间

戳和一开始打开的时候的时间戳不一样呀,因此就知道了该行数据被改变了,可以提示用户“编辑的数据不存在,保存失败”。

代码步骤:

1.点击编辑按钮,通过id获取数据库中该行数据(包含timestamp类型的字段),将获取的数据显示在界面上,timestamp可以隐藏显示。

2.点击编辑界面的保存按钮,把界面上的数据(包括一开始 点击编辑按钮获得的时间戳)传给update存储过程,在存储过程中检查该id的这行数据的时间戳是否等于传过来的时间戳。

sql server里的timestamp类型在c#中会变成byte[]类型,byte[]不好转成string显示在页面上,也不能作为存储过程timeStamp类型的传参(因为我需要把一开始的时间戳传给存储过程来和数据库现在的时间戳比较)

 

可以在数据库中timestamp改成BIGINT类型。

BigINT在c#中会变成long. long转成string可以直接toString()  string转成long可以long.parse(string)

改成bigint后存储过程的传参也要写bigint.

 

posted on 2019-08-08 17:04  随想***  阅读(2403)  评论(0编辑  收藏  举报