我的一个 SQL Server 表中有一个时间戳列,用于维护行版本控制, 但我不知道如何在剑道网格上显示它的值, 这是必需的,因为我的实体不会更新该列中具有空值的记录,通过在网格上显示时间戳值,我将在更新记录时收回它。 这是我的剑道网格架构
schema: {
errors: function(response) {
if (response.Voucher && response.Voucher !== "True") {
return response.Voucher;
}
return false;
},
data: "data",
total: "total",
model: {
id: "ID",
fields: {
ID: { editable: false, nullable: true },
FK_Category_ID: { defaultValue: -1, validation: { required: { message: "" } } },
CompanynameAr: { type: "string", validation: { required: { message: " " } } },
CompanynameEn: { type: "string" },
FK_Country_ID: { defaultValue: -1, validation: { required: { message: "" } } },
Address: { type: "string", validation: { required: { message: "" } } },
PoBox: { type: "string" },
Contractno: { type: "number", validation: { required: { message: "" },min:0 } },
Refrence: { type: "number",validation:{min:0}},
RemarksMarketing: { type: "string" },
Active: { type: "string" },
Latitude: { type: "string" },
Longitude: { type: "string" },
RowVersion: {
type: "date", parse: function (value) {
return new Date(value * 1000);
}
}
//Address
}
}
}
这里 RowVersion 是我保存时间戳值的列,解析函数只是被点击并尝试解决特定问题,但不会成功。所以需要帮助
最佳答案
在服务器端,添加或更新记录时,不应在查询中包含时间戳 (RowVersion) 列(即使使用 NULL
值)。 SQL Server 将在对任何记录的每次更改时自动生成 RowVersion 列的值。因此,如果您使用普通 SQL,请从 SQL 中删除 RowVersion;或者,如果您使用 Entity Framework Code-First,则可以使用 [DatabaseGenerate(DatabaseGenerateOption.Compulated)]
属性来通知 Entity Framework 它不应更新相关列。
无论如何,如果您想向用户显示时间戳(rowversion)值,它是一个 8 字节自动递增整数,通常映射到 byte[]
类型,您可以使用 BitConverter.ToInt64() 将其转换为 long 并将其显示给用户。但您永远不需要在添加/更新请求时在 Controller 中接收它,因为您不应将其包含在查询中。
关于javascript - 如何在kendo grid javascript中显示Sql Server时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42973671/