私は自分のデータベースにrowversionとして使用されているタイムスタンプ列を持っています。データベースからデータを取り出すときに、私はrow []を取得し、それをbyte []に変換します。この段階までは、すべてが期待通りに機能します。how to byte [] to timestamp
データの更新時に、私は(ストアドプロシージャ内で)rowversionが同じかどうかをチェックしたいと思います。これは、データベースに格納されているコードから渡されたものと比較されます。それが違う場合、私は更新を中止します。さもなければ、データを更新します。
今私の問題は、バイト[]をストアドプロシージャに渡す方法です。ストアドプロシージャのパラメータタイプはタイムスタンプです。
注:私はすべてのdb操作をC#でエンタープライズライブラリを使用して行います。ストアドプロシージャやデータ型を変更することはできません。その制限された。
バイトタイムスタンプの形式は何ですか?または、最初にタイムスタンプはどのようにバイト[]になりますか?たぶん[this](https://stackoverflow.com/questions/10107625/6-bytes-timestamp-to-datetime)ですか? – john
タイムスタンプ構文は非推奨です。この機能は、将来のバージョンのMicrosoft SQL Serverでは削除されます。新しい開発作業でこの機能を使用しないでください。現在、この機能を使用しているアプリケーションを変更する予定です。 https://docs.microsoft.com/en-us/sql/t-sql/data-types/rowversion-transact-sql – Aaron
@john私はdata_rowを取得します。このように、row_versionをバイト配列に変換します。dr ["row_version "] == DBNull.Value?新しいバイト[1]:(バイト[])dr ["row_version"]; – user2645738