DB検索で全レコード数の取得 – プログラミング – Home

DB検索で全レコード数の取得
 
通知
すべてクリア

DB検索で全レコード数の取得


toru
 toru
(@toru)
ゲスト
結合: 23年前
投稿: 37
Topic starter  

DbDataReaderを使用しているのですが、
全データを読み込む前に、全レコード数を取得する方法はないのでしょうか?

Javaでいうところの、ResultSet.last()、rs.getRow()です。


引用解決済
トピックタグ
toru
 toru
(@toru)
ゲスト
結合: 23年前
投稿: 37
Topic starter  

引き続き調べてみたのですが、どうやらないみたいですね。
ところで

// 事前レコード数チェック
int count = 0;
while (reader.Read())
{
count++;
}
最後まで、Read()したあと、readerを最初に巻き戻すことも
できないんですね。(できないんですよね?)

HasRows()とか、あるんだったらCountプロパティがほしかった。


返信引用
よだれ
 よだれ
(@よだれ)
ゲスト
結合: 18年前
投稿: 4
 

自分も知りたかったので調べてみました。
.Netですよね?
SQL文を使って全件数を出して、それを取得すれば何とかなりました。
自分はOLE DBでしたが、多分同じ方法でいくはず?です。

サンプル
string strSQL = SELECT COUNT(*) FROM あと検索内容!;

OleDbCommand cmd = new OleDbCommand(strAllSQL, conn);
object n = cmd.ExecuteScalar();

メソッド ExecuteScalar は、単一スカラーを返すSELECT文の実行に使うらしいです。


返信引用
よだれ
 よだれ
(@よだれ)
ゲスト
結合: 18年前
投稿: 4
 

間違った・・・すまん。

誤 OleDbCommand cmd = new OleDbCommand(strAllSQL, conn);
正 OleDbCommand cmd = new OleDbCommand(strSQL, conn);


返信引用
toru
 toru
(@toru)
ゲスト
結合: 23年前
投稿: 37
Topic starter  

よだれさん、ありがとうございます。(すごいハンドル名だ(w

実は、私も既にCOUNT文で代替してしてしまいました。
ただ、これだと余分にCOUNT文を実行しなければいけないのでパフォーマンスをちょっと
心配しています。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました