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

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

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

Re[9]: selectしたデータ件数を取得したい


(過去ログ 53 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■29831 / inTopicNo.1)  selectしたデータ件数を取得したい
  
□投稿者/ YOU (22回)-(2008/12/15(Mon) 17:33:03)

分類:[.NET 全般] 

VisualStdio 2008 C#
参照設定:Oracle.DataAccess.dll参照

ODP.NETが提供している上記ライブラリを参照し、
SELECT文からデータ件数を取得したいのですが
ExecuteReader()のCurrentRowに件数が見えるのですが
取得できません。
どなたかご存知の方教えてください。

※先ほど、質問して確かめずに解決をしてしまいました。すみません。
cmd.ExecuteReader⇒cmd.ExecuteQuery();は、.ExecuteQueryが存在しなかった為
ビルドが通りませんでした。



OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from emp";
OracleDataReader dr = cmd.ExecuteReader();
///
/// この部分でデータ件数を取得したい
///
while (dr.Read())
{
}

引用返信 編集キー/
■29836 / inTopicNo.2)  Re[1]: selectしたデータ件数を取得したい
□投稿者/ aetos (44回)-(2008/12/15(Mon) 17:46:52)
No29831 (YOU さん) に返信
> VisualStdio 2008 C#
> 参照設定:Oracle.DataAccess.dll参照
>
> ODP.NETが提供している上記ライブラリを参照し、
> SELECT文からデータ件数を取得したいのですが
> ExecuteReader()のCurrentRowに件数が見えるのですが
> 取得できません。
> どなたかご存知の方教えてください。
>
> ※先ほど、質問して確かめずに解決をしてしまいました。すみません。
> cmd.ExecuteReader⇒cmd.ExecuteQuery();は、.ExecuteQueryが存在しなかった為
> ビルドが通りませんでした。

OracleDataAdapter.Fill でどうでしょう。
引用返信 編集キー/
■29839 / inTopicNo.3)  Re[2]: selectしたデータ件数を取得したい
□投稿者/ みきぬ (304回)-(2008/12/15(Mon) 18:11:32)
情報共有リンク。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47623&forum=7
引用返信 編集キー/
■29840 / inTopicNo.4)  Re[3]: selectしたデータ件数を取得したい
□投稿者/ ロック (148回)-(2008/12/15(Mon) 18:13:36)
2008/12/15(Mon) 18:26:36 編集(投稿者)

こんなのも作ってみました。
未検証ですが、複数の結果セットを返す方法です。
たぶん動くと思います。個人的には、やらない方法ですが・・
#なぜなら、DataAdapterの方を使いますから

OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "Select count(*) from emp;Select * from emp"; // 2つの結果セットを返すSQL文にして
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read()){
int iCount = Convert.ToInt32(dr[0]); // 最初の結果セットで件数取得して
}
dr.NextResult(); // 次の結果セットに移動
while (dr.Read())
{
}

#最初の結果セットを読む前にdr.Read()してなかったので
#修正しました。

引用返信 編集キー/
■29841 / inTopicNo.5)  Re[1]: selectしたデータ件数を取得したい
□投稿者/ .SHO (413回)-(2008/12/15(Mon) 18:17:01)
No29831 (YOU さん) に返信

できればまず No29797 を対処して頂けないですか?
引用返信 編集キー/
■29843 / inTopicNo.6)  Re[1]: selectしたデータ件数を取得したい
□投稿者/ やじゅ (863回)-(2008/12/15(Mon) 18:28:31)
やじゅ さんの Web サイト
No29831 (YOU さん) に返信
> cmd.ExecuteReader⇒cmd.ExecuteQuery();は、.ExecuteQueryが存在しなかった為

ごめんさい、ExecuteQueryは、自作メソッドでした、普通に使用していたので忘れてました。
中身は OracleDataAdapter.Fill です。

引用返信 編集キー/
■29848 / inTopicNo.7)  Re[2]: selectしたデータ件数を取得したい
□投稿者/ YOU (23回)-(2008/12/15(Mon) 19:42:30)
No29843 (やじゅ さん) に返信
> ■No29831 (YOU さん) に返信
>> cmd.ExecuteReader⇒cmd.ExecuteQuery();は、.ExecuteQueryが存在しなかった為
>
> ごめんさい、ExecuteQueryは、自作メソッドでした、普通に使用していたので忘れてました。
> 中身は OracleDataAdapter.Fill です。
>
OracleDataAdapter.Fillのサンプル等ありましたら教えてくれませんか?
参照DLLは、ORACLDataAccess.dllでいいのでしょうか?

引用返信 編集キー/
■29849 / inTopicNo.8)  Re[3]: selectしたデータ件数を取得したい
□投稿者/ やじゅ (865回)-(2008/12/15(Mon) 20:08:37)
やじゅ さんの Web サイト
No29848 (YOU さん) に返信
> OracleDataAdapter.Fillのサンプル等ありましたら教えてくれませんか?

VB使いなのでC#で合ってるか分からんけど、こんな感じ

OracleDataAdapter adp = new OracleDataAdapter();
DataTable dt = new DataTable();

OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "Select * from emp";

//データセット生成
adp.SelectCommand = cmd;
adp.Fill(dt);
//レコード件数
Integer count = dt.Rows.Count;

> 参照DLLは、ORACLDataAccess.dllでいいのでしょうか?
OKです。
引用返信 編集キー/
■29850 / inTopicNo.9)  Re[4]: selectしたデータ件数を取得したい
□投稿者/ ロック (150回)-(2008/12/15(Mon) 20:22:12)
ADO.NETだけで、どうにかなると思っていました。
オラクルの場合は、ODP.NETなるものが登場するのですね
ごめんなさい認識不足でした。
ということで、 No29840 の処理も通らない可能性があるのか。。。

この辺が参考になるかと思います。
http://otndnld.oracle.co.jp/beginner/odpnet/2_1/index.html
http://www.atmarkit.co.jp/fdb/index/index-db.html#odpdotnet

Fillの場合は、戻り値が行数になっています。
後から参照したい場合は、返されたDataSetやDataTableのRows.Countで
わかります。

#オフィシャルサイトやさしく詳しいですね
#あとVBは、まったく使っていません。使う予定も今のところありません(謎)

引用返信 編集キー/
■29851 / inTopicNo.10)  Re[5]: selectしたデータ件数を取得したい
□投稿者/ くだん (13回)-(2008/12/15(Mon) 20:36:14)
No29850 (ロック さん) に返信
> ADO.NETだけで、どうにかなると思っていました。
> オラクルの場合は、ODP.NETなるものが登場するのですね
妙な言い回しですね。今回の質問が ODP.NET なだけで、
ADO.NET なら
[System.Data.OracleClient]
http://msdn.microsoft.com/ja-jp/library/system.data.oracleclient.aspx
引用返信 編集キー/
■29855 / inTopicNo.11)  Re[6]: selectしたデータ件数を取得したい
□投稿者/ YOU (24回)-(2008/12/15(Mon) 21:45:19)
ていねいに回答ありがとうございます。
やじゅさんのサンプルで試してみます。

解決済み
引用返信 編集キー/
■29862 / inTopicNo.12)  Re[7]: selectしたデータ件数を取得したい
□投稿者/ やじゅ (866回)-(2008/12/16(Tue) 00:10:39)
やじゅ さんの Web サイト
No29855 (YOU さん) に返信
> ていねいに回答ありがとうございます。
> やじゅさんのサンプルで試してみます。
>

焦って、解決済みにしなくても良いですよ。
ちゃんと確認してから、解決済みにしないと
また同じことを繰り返してしまいます。

別に解決済みにしたからといって、別スレッドに
しないで、継続しても問題ありませんので。
解決済み
引用返信 編集キー/
■29868 / inTopicNo.13)  Re[8]: selectしたデータ件数を取得したい
□投稿者/ YOU (25回)-(2008/12/16(Tue) 09:34:50)
No29862 (やじゅ さん) に返信
> ■No29855 (YOU さん) に返信
>>ていねいに回答ありがとうございます。
>>やじゅさんのサンプルで試してみます。
>>
>
> 焦って、解決済みにしなくても良いですよ。
> ちゃんと確認してから、解決済みにしないと
> また同じことを繰り返してしまいます。
>
> 別に解決済みにしたからといって、別スレッドに
> しないで、継続しても問題ありませんので。
やじゅさん、ご指摘ありがとうございます。

やじゅさんのサンプルで件数取得できました。

解決済み
引用返信 編集キー/
■29870 / inTopicNo.14)  Re[9]: selectしたデータ件数を取得したい
□投稿者/ みきぬ (306回)-(2008/12/16(Tue) 09:44:50)
↓で、こっちは?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47623&forum=7

>select count(*) from emp
>を、ExecuteScalar

試してできたの? だめだったの? それとも試さなかったの?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -