C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

オートナンバーの取得 /Y.M (23/12/06(Wed) 08:17) #102675
Re[1]: オートナンバーの取得 /WebSurfer (23/12/06(Wed) 09:50) #102677
Re[1]: オートナンバーの取得 /魔界の仮面弁士 (23/12/06(Wed) 09:47) #102676
Re[1]: オートナンバーの取得 /WebSurfer (23/12/06(Wed) 09:57) #102678
  └ Re[2]: オートナンバーの取得 /Y.M (23/12/10(Sun) 11:15) #102683 解決済み


親記事 / ▼[ 102677 ] ▼[ 102676 ] ▼[ 102678 ]
■102675 / 親階層)  オートナンバーの取得
□投稿者/ Y.M (1回)-(2023/12/06(Wed) 08:17:34)

分類:[C#] 

C#とAccessを使ってクラサバシステムを構築しています。
C#でaccessのオートナンバーを取得する所で躓いてしまいました。
どなたかC#を使ったオートナンバーの取得方法ご存知の方、ご教授お願いします

よろしくお願いします
[ □ Tree ] 返信 編集キー/

▲[ 102675 ] / 返信無し
■102677 / 1階層)  Re[1]: オートナンバーの取得
□投稿者/ WebSurfer (2832回)-(2023/12/06(Wed) 09:50:35)
No102675 (Y.M さん) に返信

> C#でaccessのオートナンバーを取得する所で躓いてしまいました。
> どなたかC#を使ったオートナンバーの取得方法ご存知の方、ご教授お願いします

Access のあるテーブルの ID 列(主キー)がオートナンバーに設定してあって、新規レコードを
INSERT した時に Access 側で採番したオートナンバー値を取得したいということですか?

であれば、SELECT @@IDENTITY クエリを使ってはいかがですか? 詳しくは、以下の Microsoft
のドキュメントを見てください。

@@IDENTITY危機の管理
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/articles/ms971502(v=msdn.10)?redirectedfrom=MSDN

WinForms アプリで DayaGridView + TableAdapter を使っての具体例も参考に乗せておきます。
(こういうことがしたいのではなかろうかと想像して)

Access の更新
http://surferonwww.info/BlogEngine/post/2010/09/04/Updating-Access.aspx

紹介した前者の記事の「@@IDENTITYに関する問題」に書いてありますが、@@IDENTITY には少々
問題があるそうです。

SQL Server ならそういう問題を回避するために SCOPE_IDENTITY() 関数を利用できますが、
Access では何ともなりません。記事に書いてあるように「うまくいけば、それはあなたが退職
するまで起こりません」ということを期待するほかなさそうです。
[ 親 102675 / □ Tree ] 返信 編集キー/

▲[ 102675 ] / 返信無し
■102676 / 1階層)  Re[1]: オートナンバーの取得
□投稿者/ 魔界の仮面弁士 (3733回)-(2023/12/06(Wed) 09:47:52)
No102675 (Y.M さん) に返信
> C#でaccessのオートナンバーを取得する所で躓いてしまいました。

データベースバージョンにもよりますが、
 sql = "SELECT @@IDENTITY";
なクエリーを実行することで、直前に発行されたオートナンバーを得ることができます。
(他のトランザクションで生成されたオートナンバーは得られません)

あるいは DataSet で扱う場合の DataTable 側での C# 側での採番ルールの話であれば、AutoIncrement プロパティを true にします。
https://learn.microsoft.com/ja-jp/dotnet/api/system.data.datacolumn.autoincrement?WT.mc_id=DT-MVP-8907
https://learn.microsoft.com/ja-jp/dotnet/framework/data/adonet/retrieving-identity-or-autonumber-values?WT.mc_id=DT-MVP-8907
[ 親 102675 / □ Tree ] 返信 編集キー/

▲[ 102675 ] / ▼[ 102683 ]
■102678 / 1階層)  Re[1]: オートナンバーの取得
□投稿者/ WebSurfer (2833回)-(2023/12/06(Wed) 09:57:50)
No102675 (Y.M さん) に返信

No102677 内のリンク張り直し(このサイトは URL 内のカッコを認識してくれないので
パーセントエンコードしました)

@@IDENTITY危機の管理
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/articles/ms971502%28v=msdn.10%29
[ 親 102675 / □ Tree ] 返信 編集キー/

▲[ 102678 ] / 返信無し
■102683 / 2階層)  Re[2]: オートナンバーの取得
□投稿者/ Y.M (5回)-(2023/12/10(Sun) 11:15:17)
No102678 (WebSurfer さん) に返信
> ■No102675 (Y.M さん) に返信
>
> No102677 内のリンク張り直し(このサイトは URL 内のカッコを認識してくれないので
> パーセントエンコードしました)
>
> @@IDENTITY危機の管理
> https://learn.microsoft.com/ja-jp/previous-versions/dotnet/articles/ms971502%28v=msdn.10%29

無事解決できました
有難うございました
解決済み
[ 親 102675 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -