DOBON.NET DOBON.NETプログラミング掲示板過去ログ

オートナンバー主キーの更新、挿入

環境/言語:[VB.NET]
分類:[.NET]

MDBにオートンバー主キーを設定、開始値1増分1.
該当テーブルのデータセットを作成して、同じくオートナンバー
フィールドを開始値1増分1設定。
更新のWHERE句にオートナンバーフィールドを設定。
挿入はオートナンバーフィールド以外のフィールドを挿入。
すると、まれに同時更新異常が発生します。中身をみると、
挿入行のオートナンバーフィールドがずれているようです。
どのようにすれば、MDBとデータテーブルのオートナンバー値を
必ず合致するようにできるのでしょうか。
オートナンバーフィールドを持つテーブルへ挿入する場合、
データアダプター挿入コマンドでは、上記の通りセットしなくて
よいのですよね。っていうか、できませんよね。
■No13793に返信(さゆりさんの記事)
> MDBにオートンバー主キーを設定、開始値1増分1.
> 該当テーブルのデータセットを作成して、同じくオートナンバー
> フィールドを開始値1増分1設定。
> 更新のWHERE句にオートナンバーフィールドを設定。
> 挿入はオートナンバーフィールド以外のフィールドを挿入。
> すると、まれに同時更新異常が発生します。中身をみると、
> 挿入行のオートナンバーフィールドがずれているようです。
> どのようにすれば、MDBとデータテーブルのオートナンバー値を
> 必ず合致するようにできるのでしょうか。
> オートナンバーフィールドを持つテーブルへ挿入する場合、
> データアダプター挿入コマンドでは、上記の通りセットしなくて
> よいのですよね。っていうか、できませんよね。


さゆりさん、おはようございます。

挿入する時、オートナンバーフィールドにデータを入れる必要はありませんが、
フィールドを特定させる必要があります。
例えば、フィールドが、
オートナンバー、Code、Name、etc のテーブルである時、以下のようなINSERT文にする必要があります。
 INSERT INTO HogeTable (Code, Name, etc) values (1, "テスト名前", "その他")
恐らく、Values以下からの記述も可能である為、その方法を用いてデータを挿入しているのではないでしょうか?
詳しくは、ttp://sql.main.jp/cont/sql/in.html
を参照してください。
> さゆりさん、おはようございます。
>
> 挿入する時、オートナンバーフィールドにデータを入れる必要はありませんが、
> フィールドを特定させる必要があります。
> 例えば、フィールドが、
> オートナンバー、Code、Name、etc のテーブルである時、以下のようなINSERT文にする必要があります。
>  INSERT INTO HogeTable (Code, Name, etc) values (1, "テスト名前", "その他")
> 恐らく、Values以下からの記述も可能である為、その方法を用いてデータを挿入しているのではないでしょうか?
> 詳しくは、ttp://sql.main.jp/cont/sql/in.html
> を参照してください。

回答ありがとうございます。
UpdateイベントにてExecuteScalarにより
オートナンバーMAX値を取得することにより
解決いたしました
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板