いつもお世話になります。
ADO.NETを最近はじめました。
ADOの時代にデータがあるかどうかを「if recordset.eof then 〜」のように記述してましたが、ADO.NETではどのようにすればいいのでしょうか?
よろしくお願いいたします。
DataTable に受け取っているなら、.Rows.Count で取得できます。
型付 の DataTable をお使いなら、.Count だけでも OK です。
IDataReader にて受け取るなら、HasRows プロパティもしくは
初回の Read メソッドの戻り値にて判断できます。
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使えばいい気がしますけどね。
ありがとうございます。
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
以上よろしくお願いいたします。
解決しました。ありがとうございます。
編集 削除