EOFの確認について

解決


ながなが  2008-10-17 01:02:47  No: 145295

いつもお世話になります。
ADO.NETを最近はじめました。
ADOの時代にデータがあるかどうかを「if recordset.eof then 〜」のように記述してましたが、ADO.NETではどのようにすればいいのでしょうか?
よろしくお願いいたします。


魔界の仮面弁士  2008-10-17 01:58:34  No: 145296

DataTable に受け取っているなら、.Rows.Count で取得できます。
型付 の DataTable をお使いなら、.Count だけでも OK です。

IDataReader にて受け取るなら、HasRows プロパティもしくは
初回の Read メソッドの戻り値にて判断できます。


YuO  2008-10-17 02:34:06  No: 145297

HasRowsはDbDataReaderのプロパティだそうです。
http://msdn.microsoft.com/ja-jp/library/system.data.common.dbdatareader.hasrows.aspx
# ↑「実装」の項目がない

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200810/08100039.txt
の内容だと,IDbComamnd.ExecuteScalar使えばいい気がしますけどね。


ながなが  2008-10-17 22:14:45  No: 145298

ありがとうございます。
ADOでのデータの値を参照するのに
例えば
debug.print rs!社員名
と表示するのはADO.NETではどのようにすればいいのでしょうか?
以下に現在書いているコードを載背させていただきます。

        '//---コネクション
        Dim cn As New SqlConnection _
            ("Data Source=anp_sqlserver;" _
             & "Initial Catalog=" & "PC固定資産管理システム" _
             & ";User ID=sa;password=''")
        cn.Open()

        '//---コマンド
        Dim MyAdapter As New SqlDataAdapter _
            ("select ID,固定資産管理コード from [TA1001_PCマスタ] " _
             & "where 固定資産管理コード=" _
             & Me.txt固定資産コード.Text & "", cn)
        '//---Datasetオブジェクト
        Dim MyDataSet As New DataSet
        '//---テーブル
        Dim MyTable As DataTable
        '//---Row
        Dim MyRow As DataRow
        '************************************************************'
        '       接続開始
        '************************************************************'
        MyAdapter.Fill(MyDataSet, "TA1001_PCマスタ")
        MyTable = MyDataSet.Tables("TA1001_PCマスタ")
        
          ↓ここをどうすればいいのかがわかりません。今のままでは新しいレコードを1件追加してしまいます。
        MyRow = MyTable.NewRow

        '//---EOFの時(次ページは新規追加モード)
        If MyTable.Rows.Count = 0 Then
            ADDUPFLG = 0
        End If

        '//---EOFでない時(次ページは修正モード)
        If MyTable.Rows.Count <> 0 Then
            ADDUPFLG = 1
                    ↓この部分でIDの値を変数にセットしたいです。
            UpID = MyRow("ID")
        End If

以上よろしくお願いいたします。


ながなが  2008-10-21 03:35:15  No: 145299

解決しました。ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加