- PR -

レコード件数の取得方法

投稿者投稿内容
yoko
常連さん
会議室デビュー日: 2003/05/09
投稿数: 20
投稿日時: 2003-06-16 10:35
OLEDBを使用してORACLEデータベースに接続をしています。
SELECT文を実行したときに、レコード件数を取得したいのですが、
どのようにすれば取得できるのでしょうか?
よろしくお願いいたします。
ダンクーガ
常連さん
会議室デビュー日: 2003/03/14
投稿数: 48
お住まい・勤務地: 千葉県
投稿日時: 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 += "件のデータ"
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-06-16 14:37
こんんちは。
引用:

nishiさんの書き込み (2003-06-16 10:35) より:
OLEDBを使用してORACLEデータベースに接続をしています。
SELECT文を実行したときに、レコード件数を取得したいのですが、
どのようにすれば取得できるのでしょうか?


 これは、「どのようにわかりたい」のでしょう?また、現在どのようにデータを取得していますか?

 例えば、DataTableやDataSetにOleDbDataAdapterのFillメソッドを使用して取得しているならダンクーガさんのような方法になります。OleDbDataReaderを使用して1行ずつ取得しているなら、データの最後までカーソルを進めないとデータ数はわかりません(OleDbのカーソルは一方通行だったはず)。それとも、SELECT文を発行する前に知りたいのであれば基本的に不可能ですが、「SELECT COUNT(…) FROM …」を発行して取得する、ということができます。
yoko
常連さん
会議室デビュー日: 2003/05/09
投稿数: 20
投稿日時: 2003-06-16 15:48
質問内容が不明確ですみません・・・。

レコード件数を取得したいタイミングとしては、
SELECT文を実行した直後です。
直後に取得できるのであれば、
SELECT文の実行手段は特にこだわっていません。

ですので、ダンクーガさんの通りで試してみたいと思います。

ダンクーガさん、Jittaさん、ありがとうございました。
ふぐ
会議室デビュー日: 2003/06/09
投稿数: 7
投稿日時: 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() + "件です。");

みたいにしてもできると思います。
hiroko
常連さん
会議室デビュー日: 2003/11/26
投稿数: 23
投稿日時: 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/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2003-11-29 07:50
引用:

hirokoさんの書き込み (2003-11-29 03:58) より:
ふぐさんのプログラムを参照させていただき、レコード件数を取得しようとしたのですが、
ExecuteScalar には接続が開かれていて使用可能なことが必要です。現在の接続状態は Closed です。
というエラーが出てうまくいきません。
どうぞお力をお貸しいただければと思います。


ただ単にデータベース接続がOpenされてないだけだとおもうのですが?
というかMSDNライブラリ等見てから試してます?

_________________
_/_/_/
_/うちの会社の変なところ〜
_/1条.毎年300人新卒採用
_/2条.大事な事項(就業規則等)の変更発表は、施行前日
_/(以下略)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-29 19:49
引用:

アティさんの書き込み (2003-11-29 07:50) より:
というかMSDNライブラリ等見てから試してます?


 エラーメッセージのところでF1押したらエラーの詳細が見られますしね。



で、こっちにつけたのは、シグニチャに突っ込みいれようと思ったのですが、引用されないのね。。。

スキルアップ/キャリアアップ(JOB@IT)