- - PR -
データセット内の特定列の最大値取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-19 11:49
こんにちわ。
初めて投稿します。 よろしくお願いします。 データセット内に、以下のようなフィールドで構成される情報が入っています。 dataset1(T_person) [ID][name][syozoku][age] これらをWindowsフォーム上のテキストボックスに表示しているのですが、 新規に登録する際、名前を入力しEnter後に、IDを自動採番するために、 最大値を取得したいと考えています。 このような場合、C#からどのように[ID]列の最大値を取ればよいのでしょう? Max関数あたりかとは思うのですが、その記述方法がわかりません。 よろしくお願いします。 | ||||
|
投稿日時: 2004-10-19 12:19
こんにちは。
DataSetと言うより処理の問題のような気がします。 データベースが何か分かりませんが・・。 僕なら登録処理時に採番します。Oracleならシーケンスとかで・・。表示が必要なら採番した時に退避しておいてそれを表示します。 登録前に表示する必要があれば一番最初だけはテーブルからIDの最大値を取得すればいいと思います。一瞬で終る処理だし、わざわざDataSetの中身を検索する必要もないと思いますよ^^ DataSetからも取得出来ると思いますが、上記の方法より手間がかかりますよ。 | ||||
|
投稿日時: 2004-10-19 12:27
SELECT MAX(ID) FROM DataTable でID列の最大値が取れますけど・・・・
| ||||
|
投稿日時: 2004-10-19 12:30
DataTableのSelect()メソッドで取得は可能です。
td.Select("ID = MAX(ID)") しかし、とっと様が言うように 排他などを考えるとDBで処理したほうがいいと思われます。 | ||||
|
投稿日時: 2004-10-19 13:04
どうもです。 そのへんは普通のTableと同じで良いわけですね。 | ||||
|
投稿日時: 2004-10-19 15:57
こ、Compute、、、、
#dataTable.Compute("Max(ID)", null)をお忘れなく、、、 | ||||
|
投稿日時: 2004-10-19 23:15
質問だけして返答が送れ申し訳ありません。
午後はトラブルで参っておりました。^^; まず、みなさん回答ありがとうございます。 >とっとさん DBの種類を書かずすいません。SQLServerを使って(使われて?^^;)います。 書き方というか、僕の理解が足りないせいだと思いますが、 DataSet内の「T_person」テーブル内の[ID]列の最大値を取ろうかと考えていました。 仕組みを理解していないせいか、表現が難しいですね。 >じいじさん 明日試してみます。 SQLで普通に書けば良いわけですね。 >burton999さん DataTableでの処理ですね。 こちらも試させていただきます。 >nanbuさん Computeメソッドも初めて見ました。 こちらも、ヘルプを見てから試してみます。 今回初めてデータベースからの情報を使うプログラムを組むので、 右も左もわかりません。 こういう場合は、データベース側での処理を行うのが通常なのですね。 | ||||
|
投稿日時: 2004-10-19 23:51
データベースに同時アクセスされる可能性があるなら
最大値プラス1で採番する方法はあまりオススメできません。 |
1