- PR -

【ASP.NET】

1
投稿者投稿内容
VBびぎなー
会議室デビュー日: 2006/05/29
投稿数: 16
投稿日時: 2006-06-04 00:54
カテゴリー番号
問題番号
問題文
というフィールドを持つクエリテーブルから、カテゴリー番号を限定して、そのレコードを構造体にまるまる放り込んでしまいたいのですが、下記※のところで
「行ハンドルが無効です。」
とエラーが出てしまいます。
SQLの構文に問題があるため、drでちゃんとデータを取得できていないのでしょうか?
初心者で初歩的な問題で悩んでいます。
どなたかお教えください。よろしくお願いします。
----------------------------------------------------------
Public Structure Q_Data
Dim Q_Num As Integer
Dim Q_Write As String
End Structure

Dim cat As Integer
cat = CInt(Request.QueryString("catID"))
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\web\WebApplication1\DB\test.mdb;")
Dim cmd As New OleDb.OleDbCommand("SELECT * FROM クエリテーブル WHERE カテゴリー番号=" & cat, cn)
Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
Dim Q(0) As Q_Data
dr.Read()
※Q(0).Q_Num = dr.Item("問題番号")
Q(0).Q_Write = dr.Item("問題文")
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-04 01:19
引用:

VBびぎなーさんの書き込み (2006-06-04 00:54) より:

Dim cat As Integer
cat = CInt(Request.QueryString("catID"))
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:webWebApplication1DBtest.mdb;")
Dim cmd As New OleDb.OleDbCommand("SELECT * FROM クエリテーブル WHERE カテゴリー番号=" & cat, cn)


一行もセレクトされなかったんじゃないですか?
Requestでもらっ catID のデータはテーブルに存在しますか?
VBびぎなー
会議室デビュー日: 2006/05/29
投稿数: 16
投稿日時: 2006-06-04 16:50
一行もセレクトされなかったんじゃないですか?
Requestでもらっ catID のデータはテーブルに存在しますか?
----------------------------------------------------------
一行もセレクトされてなかったみたいです。
WHERE カテゴリー番号=" & cat のところを
WHERE カテゴリー番号= " & cat と=の後ろにスペースをいれることで
解決できました。
かるあさん、どうもありがとうございました!
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-04 18:35
余計なお世話かもしれませんが…

Read できたか検査してあげたほうがよくないですか?
コード:
  If dr.Read Then
  End If



なんか、暗黙の型変換とか結構ありそうですが
VB を始めたばかりならソースの頭に Option Strict On をつけて
明示的な型変換に慣れておくと良いかも知れません
1

スキルアップ/キャリアアップ(JOB@IT)