2017-03-23 20 views
0

にSql Serverのタイムスタンプ列を表示する方法行のバージョン管理を行うためにSQLサーバーテーブルの1つにtimestamp列があります。 剣道グリッドにその値を表示する方法はわかりません。 私のエンティティは、その列にヌル値でレコードを更新することはありません。グリッドにタイムスタンプ値を表示することで、レコードを更新するときに戻します。 が、これは剣道のグリッドJavaスクリプト

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は、タイムスタンプ値を保持し、私のコラムで、機能を解析だけでヒットし、特定の問題が、文句を言わない成功での解決に努めています。 help

答えて

0

MSDNにあるように、SQL Serverのタイムスタンプ値は.netのバイト配列なので、Date値に変換することはできません。

受信した値を変換しないで、単に非表示にすることができます。

+0

データタイプは何ですか?コントローラの動作でこの値を受け取らなければならないからです。 –

1

サーバー側では、レコードを追加または更新するときに、クエリにタイムスタンプ(RowVersion)列を含めないでください(NULLの値であっても)。 SQL Serverは、レコードの変更ごとにRowVersion列の値を自動的に生成します。したがって、プレーンSQLを使用している場合は、SQLからRowVersionを削除してください。または、Entity Framework Code-Firstを使用する場合は、[DatabaseGenerated(DatabaseGeneratedOption.Computed)]属性を使用してEntity Frameworkに関連する列を更新しないよう通知することができます。とにかく

、あなたのユーザーにタイムスタンプ(rowversion)値を表示したい場合、それは通常byte[]タイプにマッピングされている8バイトの自動インクリメントの整数であり、あなたがlongに変換するBitConverter.ToInt64()を使用することができますそれをユーザーに表示します。しかし、追加/更新リクエストでコントローラ内で受け取る必要はありません。なぜなら、クエリにそれを含めるべきではないからです。