• ベストアンサー

.NET SqlDataReader のレコード有無判定

SqlDataReader を使用して取得データが0件データだった場合どのような判定方法を利用していますか? Vb6.0の場合は If RecSet.EOF Then などをやっていましたが・・・ .NETのSqlDataReaderの場合どのような方法になるのでしょうか。 ご教授お願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.2

IFで判定させるとしたら If RecSet.Read() = true Then これでいけると思います。

soushi_ni
質問者

お礼

ありがとうございます。確認できました。

その他の回答 (1)

  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.1

DataReader使った時はReadで判定させてます。 Do While RecSet.Read() Loop

soushi_ni
質問者

補足

早速のご教授ありがとうございます。 私の質問内容がイマイチ不足しておりました。 Do While ~ であれば、確かに無ければ抜けますが、 SqlDataReaderオブジェクトで レコード有無判定がわからないかと思い、投稿しました。 今までのやりかたは、Do While内部でデータ存在のBool系なりでフラグ判定していましたが・・・ もっと良いやり方はないかと悩んでいます。 ご存知であれば、引き続きご教授願いします

関連するQ&A

  • ActiveFormの有無を判定したい

    ActiveFormが有るか無いかを判定したいのですがどうやって聞けばよいのでしょうか? If Screen.ActiveForm.Name = "" Then でも If Screen.ActiveForm = Nothing Then でも、『型が違う』と怒られます。 簡単な方法があればぜひ教えて頂きたいです。

  • オブジェクトの有無を判定

    表題の件につき、ぐぐったところ、 document.getElementById(id).style.visibility で判定が出来るとのことだったのですが、 取得される値が空白値になってしまいます。 他にオブジェクトの有無を判定する方法をご存知の方ご教授ください。 よろしくお願い致します。

  • レコード一件ずつ処理判定をしたいのです。

    データベースの値を取得してきて 下記内容の処理を実施したいと考えています。 Do While rs.EOF = False    処理する内容:     レコード1件目とレコード2件目の値をチェックする。     レコード2件目とレコード3件目の値をチェックする。 rs.MoveNext Loop レコード一件ずつ処理の判定をしたいのです。 要は レコード内で重複する値があれば排除する分岐をしたいんですよね。

  • カレントレコードが無い事を判定させる方法

    SQLを使ってmdb内のレコードセットを取得し、 無かったらエラーを返す、という処理を作成 する場合、カレントレコードが無い事を 判定するにはどうすれば良いでしょうか? イメージは下記のような感じです。 レコードセット as DAO.Recordset 'レコードセット取得  Set レコードセット = db.OpenRecordset(作成したSQL文) '判定 If カレントレコード無 Then MsgBox "エラーメッセージ" Exit Sub End If

  • Access EOFの判定がうまくいかない

    お世話になります。 Access2010 テーブルのEOFの判定がうまくいきません。  If TMP.EOF = False Then   MsgBox "EOFではありません"  Else   MsgBox "EOFです"  End If TMPには1レコードありますが、なぜかTrueになってしまいます。 なお、TMP.MoveLastしてもエラーにならず、その後、イミディエイト ウィンドウで?TMP.EOFとしてみると、Falseが返ってきます。 本来であればEOFでMoveLastするとカレントレコードが無い旨のエラーに なるかと思うので、EOFではないと思うのですが。。 どのようなことが考えられますでしょうか。 <TMPについて> ・(訳あって)主キーは設けておりません。 ・0レコードか1レコードです。1レコード以上になることはありません。 ・TMPはあるフォームのレコードソースとしています。  ※フォーム上の登録ボタンが押されたら、フォームのレコードソースを   ""としフォームを閉じます。このタイミングでTMPにレコードが生成   されます。   上記の判定処理は、フォームを閉じた直後に行っています。 ご教示の程、宜しくお願い致します。

  • PL/SQL での判定(分岐?)の仕方を教えてください!

    PL/SQLで、以下の(1)の処理があった場合、 (2)はどのようにすればいいでしょうか? ※(2)は2つのどちらかの場合に処理をするような 判定をしたいのですが "OR" は使えないですよね? (1)個人IDを取得している場合(NULL以外) IF kojin_id NOT NULL THEN BEGIN SELECT KANRI_NO --管理NOを取得 FROM AAA WHERE KOJIN_ID = kojin_id; EXCEPTION WHEN NO_DATA_FOUND zero_check_flg := 1; --(2)で判定する用のチェックフラグ(※(2)の判定で使えるかなと思ったので) END; END IF; (2)個人IDがNULL、または、(1)で管理NOが取得できなかった場合   ↑   ここの判定文が作れません!!!!!

  • COMオブジェクトのクラス名を判定する方法を教えてください

    下記のようなVBのソースコードをVC++に移行しようとしているのですが、typname関数のようにクラス名を取得するもしくは比較する方法がわかりません。 一応、RTTIのtypeidを使ったのですが取得したクラス名が"ATL:CComObject(...)"となってしまいました。 ほかに方法があるのでしょうか? ご教授お願いします Function func(obj As Object) ... If typename(obj) = "Class" then ... End If ... End Sub

  • レコードセットのループ処理でエラー・・・

    簡単なことだと思うのですが、解決できなくこまっております。お助けください。 以下のコーディングで、データの取得は出来ているのですが、「Do Until rs1.EOF」でエラーとなります。 SOURCE----------------------------------------- sql = "Select No from t01" Recordset.Open sql, dbc, 3 If rs1.EOF Then Response.Write "データナシ<BR>" ←表示されません。 else Do Until rs1.EOF ←この行でエラーとなります。 Response.Write "No=" & rs1("No").Value rs1.MoveNext Loop end if Error-------------------------------------------- ADODB.Field (0x80020009) BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。 因みに、Do Untilを使用せず  Response.Write "No=" & rs1("No").Value  rs1.MoveNext  Response.Write "No=" & rs1("No").Value と記述すると正常にデータが表示されます。 「Do Until rs1.EOF」で発生するエラーの回避方法を御教示願います。

  • ExcelVBA:特殊文字の判定

    文字で英字や数字を判定するとき、「文字 Like」を使い、「"[A-Z]"」「"[0-9]"」で判定することができますが、特殊文字の場合はどうなるのでしょうか? 例をあげると、例えば、 セル「A1」の文字を調べるのに、「α」「β」「γ」「δ」であるかどうか判定したいのですが、そのような場合、 If Mid(Range("A1"), Len(Range("A1")),1) Like "[α][β][γ][δ]" = True Then このようになるのでしょうか? If Mid(Range("A1"), Len(Range("A1")),1) Like "[α-δ]" = True Then これは使えませんか? 回答よろしくお願いします。

  • アクティブウィンドウの判定

    現在アクティブなウィンドウを判定し、電卓のウィンドウならマクロを実行させるというようなマクロを組みたいのですが、 If ActiveWindow.Value = ("電卓") Then これでは「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」となります。 どのように記述したら良いのでしょうか?ご教授よろしくお願いします。