- - PR -
レコード件数の取得方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-06-16 10:35
OLEDBを使用してORACLEデータベースに接続をしています。
SELECT文を実行したときに、レコード件数を取得したいのですが、 どのようにすれば取得できるのでしょうか? よろしくお願いいたします。 | ||||
|
投稿日時: 2003-06-16 11:27
>OLEDBを使用してORACLEデータベースに接続をしています。 >SELECT文を実行したときに、レコード件数を取得したいのですが、 >どのようにすれば取得できるのでしょうか? >よろしくお願いいたします。 こんにちは、こんな感じでどうでしょうか。 Dim Ds As DataSet Dim Dta As DataTable Dta = ds.Tables(0) Label1.Text = CType(Reader.Rows.Count, Integer) 'データ件数の表示 Label1.Text += "件のデータ" | ||||
|
投稿日時: 2003-06-16 14:37
こんんちは。
これは、「どのようにわかりたい」のでしょう?また、現在どのようにデータを取得していますか? 例えば、DataTableやDataSetにOleDbDataAdapterのFillメソッドを使用して取得しているならダンクーガさんのような方法になります。OleDbDataReaderを使用して1行ずつ取得しているなら、データの最後までカーソルを進めないとデータ数はわかりません(OleDbのカーソルは一方通行だったはず)。それとも、SELECT文を発行する前に知りたいのであれば基本的に不可能ですが、「SELECT COUNT(…) FROM …」を発行して取得する、ということができます。 | ||||
|
投稿日時: 2003-06-16 15:48
質問内容が不明確ですみません・・・。
レコード件数を取得したいタイミングとしては、 SELECT文を実行した直後です。 直後に取得できるのであれば、 SELECT文の実行手段は特にこだわっていません。 ですので、ダンクーガさんの通りで試してみたいと思います。 ダンクーガさん、Jittaさん、ありがとうございました。 | ||||
|
投稿日時: 2003-06-16 17:08
件数のみの取得なら普段個人的に使っている方法で(C#ですがVBだったら読替してね)
OleDbConnection con; OleDbCommand cmd; として cmd.CommandText = "SELECT COUNT(*) FROM ・・・・"; int count = (int)cmd.ExecuteScalar(); Console.WriteLine(count.ToString() + "件です。"); みたいにしてもできると思います。 | ||||
|
投稿日時: 2003-11-29 03:58
ふぐさんのプログラムを参照させていただき、レコード件数を取得しようとしたのですが、
ExecuteScalar には接続が開かれていて使用可能なことが必要です。現在の接続状態は Closed です。 というエラーが出てうまくいきません。 どうぞお力をお貸しいただければと思います。 dc_k_entry.Open(); SelCmd_k_entry.CommandText= "SELECT COUNT(*) FROM 会員名簿マスタ"; int count = (int)SelCmd_k_entry.ExecuteScalar(); memberID.Text=count.ToString(); dc_k_entry.Close(); | ||||
|
投稿日時: 2003-11-29 07:50
ただ単にデータベース接続がOpenされてないだけだとおもうのですが? というかMSDNライブラリ等見てから試してます? _________________ _/_/_/ _/うちの会社の変なところ〜 _/1条.毎年300人新卒採用 _/2条.大事な事項(就業規則等)の変更発表は、施行前日 _/(以下略) | ||||
|
投稿日時: 2003-11-29 19:49
エラーメッセージのところでF1押したらエラーの詳細が見られますしね。 で、こっちにつけたのは、シグニチャに突っ込みいれようと思ったのですが、引用されないのね。。。 |