0

私のデータベース テーブルにはinTime という名前の Timestamp 列があり、SQL サーバーでのデータの挿入、更新に LINQ を使用しています。データベースにタイムスタンプ値を追加したいのですが、挿入方法がわかりません。

 spaBL.attendance obj = new spaBL.attendance();
            obj.FK_employeeId = 1;
            obj.inTime =[what to write here??]

inTime はタイムスタンプ型です。

4

4 に答える 4

1

Timestamp(Rowversion)データ型の列に値を指定しません。SQL Serverは自動的に値を提供します(日時の値にはなりません)。したがって、LinqToSQLにタイムスタンプ値を挿入させる必要はありません。実際、あなたはそれをすることはできません。SQLServerが自動的に実行します。ただし、タイムスタンプ列の値を取得することはできます。対応するC#タイプはSystem.Data.Linq.Binaryになると思います。

LINQを使用してSQLデータベースにタイムスタンプ値を追加する方法

それが役に立てば幸い

于 2012-07-02T07:13:17.127 に答える
1

タイムスタンプは SQL Server のタイムスタンプ データ型と同じですか?

;) 誰かがドキュメントを読まずにそれを TIME STAMP だと考えるたびに 1 セントもらえるとしたら、私はビル ゲートよりも金持ちになるでしょう。

タイムスタンプ データ時間には時間情報がありません。これは実行中のバージョン番号であり、Microsoft の SQL Server が生まれた Sybase SQL Server のレガシーであり、完全に機能しない設計です。

したがって、いいえ、そのフィールドを設定することはできません。申し訳ありませんが、変更されたかどうかを確認する以外に使用できる値はありません (その後、行が更新されました)。

読書はおそらく失われた芸術だと考える人もいますが、ドキュメンテーションはそれについて明確に明確にしています:

http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

データベース内で自動的に生成された一意の 2 進数を公開するデータ型です。通常、timestamp はテーブル行にバージョン スタンプを付けるメカニズムとして使用されます。

あなたがそれを設定する方法はありません。この列を更新しないように LINQ の設定を変更します。

于 2012-07-02T07:10:20.153 に答える
1

タイムスタンプ値は、挿入時にサーバーによって自動生成されます。タイムスタンプ列に値を指定せずに、テーブルに行を挿入する必要があります。その後、SQL サーバーは列の値を生成します。

タイムスタンプ型の列には、DateTime として解析できる値が含まれていないことに注意してください。タイムスタンプ列の背後にある考え方は、行をフェッチしてから新しい値で行を更新しようとするまでの間に行が更新されたかどうかを確認するために使用できるということです。

于 2012-07-02T07:12:09.590 に答える
0

タイムスタンプを更新することはできません。ここを参照してください。実際、TomTom が示したように、実際の時間情報は含まれていません。

于 2012-07-02T07:12:40.520 に答える