- - PR -
データベースから複数件取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-14 12:05
いつもお世話になっております。
ASP.NET(VB)初心者です。WEBアプリの作成しております。 表題の件で困っています。 スレッドにて検索してみたのですがいまいちよくわからず 質問させていただきたいと…。 データベースよりIDが1のものをデータがあるだけ取得したいのですが どのように取得すれば良いのでしょうか?? Dim objDb As New SqlConnection(ConfigurationSettings.AppSettings("conStringSql")) Dim objCom As New SqlCommand( _ "SELECT * FROM テーブル1 "& _ "WHERE (ID = '1')",objDb) objDb.Open() Dim objDr As SqlDataReader=objCom.ExecuteReader() If objDr.Read() Then intId = trim(objDr("ID")) End If 上記のようにすれば一件のみしか取得できないのですが…。 簡単なことかもしれませんがよろしくお願いします。 |
|
投稿日時: 2005-03-14 12:20
Ifじゃなくてループで回しましょう。。。
|
|
投稿日時: 2005-03-14 14:57
burton999さんありがとうございます。
for文にて回してみた結果なのですが…。 どうもレコードが次の行に移らず同じ行を何回もよんでしまいます。 次のレコードを読ませるような処理は必要なのでしょうか? よろしくお願いします。 |
|
投稿日時: 2005-03-14 15:01
どのようなFor文を書きましたか?
SELECT文で複数件HITしているのは確実ですか? |
|
投稿日時: 2005-03-14 15:35
burton999さんありがとうございます。
>どのようなFor文を書きましたか? For j = 0 To DateDiff("m",strStart,strEnd) intId(j) = trim(objDr("ID")) Next 開始年月から終了年月まで回したかったので上記のようにしてみました。 For文の書き方がまずいのですかね…。 おかしいのかと思い、For j=0 To 10 等とし確認してみましたが 結果は同じでした。 >SELECT文で複数件HITしているのは確実ですか? 複数HITしているのは確実です。 Dim objCom As New SqlCommand( _ "SELECT * FROM テーブル1 "& _ "WHERE (ID = '1')",objDb) 上記の部分をビューにて確認しております。 先ほどFor文ではダメなのかと思い、データがある分だけ回そうと Do While objDr.Read : Loop にて回してみたところ取得できました。 お騒がせしてすみませんでした。 ありがとうございました。 [ メッセージ編集済み 編集者: 3m 編集日時 2005-03-14 15:45 ] |
|
投稿日時: 2005-03-14 17:11
For文がダメということではなく。
objDr.Read()メソッドを呼ぶことによって次の行が取得されます。 objDr.Read()がTrueを返している間はデータが存在することを意味し 最後までデータを読み込むとobjDr.Read()はFalseを返します。 |
1