DOBON.NET DOBON.NETプログラミング掲示板過去ログ

データベースでのレコードの移動

環境/言語:[Xp 1.1]
分類:[.NET]

お世話になっております。
誠に初歩的な質問ですがレコードの移動方法について教えてください。

質問1
DataReaderを利用する場合前方(最終レコード方向)に向かってレコードの
移動は可能ですが、任意の点から後方(先頭レコード方向)に向かって戻った
りする事方法が判りません?
DataReaderは「逐次データを読み取る」と参考書に書いてありましたが、この
事は前方にのみにカーソルが進むという事でしょうか?

質問2
DataSetを利用した場合はRows.Itemを使用して現在が10レコード目であれば
前に行く場合は9行目、後ろに行く場合は11行目を指示して移動するのでしょ
うか。これ以外の方法はありますか?

よろしくお願いいたします。
■No12490に返信(鈴さんの記事)
> 質問1
> DataReaderを利用する場合前方(最終レコード方向)に向かってレコードの
> 移動は可能ですが、任意の点から後方(先頭レコード方向)に向かって戻った
> りする事方法が判りません?

DataReaderは先頭行とそれ以降の行を1行ずつ読み込むことしかできません。

> DataReaderは「逐次データを読み取る」と参考書に書いてありましたが、この
> 事は前方にのみにカーソルが進むという事でしょうか?

です。

> 質問2
> DataSetを利用した場合はRows.Itemを使用して現在が10レコード目であれば
> 前に行く場合は9行目、後ろに行く場合は11行目を指示して移動するのでしょ
> うか。これ以外の方法はありますか?

逐次違う行のデータを参照する必要があるのであれば、
DataSetを利用すればよいかと思います。
Eightさん回答有難うございます


> DataReaderは先頭行とそれ以降の行を1行ずつ読み込むことしかできません。

これでDataReaderの読み方には確信が持てました。

> DataSetを利用すればよいかと思います。

という事はDataSetを利用した場合はRows.Itemを使用してレコードの移動を
行うと言う事でしょうか。
それともMoveNextとかMovePreviousに相当するものはあるのでしょうか?
> それともMoveNextとかMovePreviousに相当するものはあるのでしょうか?
>
ありません
■No12504に返信(鈴さんの記事)
> という事はDataSetを利用した場合はRows.Itemを使用してレコードの移動を
> 行うと言う事でしょうか。
> それともMoveNextとかMovePreviousに相当するものはあるのでしょうか?

レコードを1行ずつ移動するようなメソッドはありません。

DataSetにはテーブルデータ(実際にはそれ以外も)をメモリに一括で
読み込むので、あるレコードデータを参照したいというのであれば、
例えば
strData = DataSet.Tables(0).Rows(0).Items("COLUMN").ToString
のようにしてデータを参照することができます。

それ以外にもRowsコレクションのFindメソッドを使用するなどして
レコードデータを参照します。

DataSet、DataTable、DataRowあたりの知識を深めておくことを
お勧めします。


#「レコードの移動」という表現はあまり適切でないかもですね。
medakaさんの有難うございます)

> ありません

ありませんか。
ACCESSのようには行かないのですね。残念。
Eightさんの有難うございます。

例文まで示してくれて有難うございます。

> RowsコレクションのFindメソッド

これは便利そうですね、なるほど。

> DataSet、DataTable、DataRowあたりの知識を深めておくことを
> お勧めします。

ハイ、其のつもりでいますが説明書などの記述の内容が難解で・・・
頑張ります!

これに懲りずにまたよろしくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板