【发布时间】:2015-03-18 21:45:17
【问题描述】:
我使用带有参数的 vb.net 创建了一个查询,该参数应该允许查询从我的访问数据库中检索数据,但是当我单击该按钮时,它只显示空白字段,但没有从数据库中检索任何行。你能帮我解决我目前做错的事情吗?
Imports System.Data.OleDb
公共类RouteToCruise
Private Sub RouteToCruise_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Route_Btn_Click(sender As Object, e As EventArgs) Handles Route_Btn.Click
Try
Dim row As String
Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DeepBlueTables.mdb"
Dim cn As OleDbConnection = New OleDbConnection(connectString)
cn.Open()
Dim CruiseQuery As String = "SELECT Route.RouteName + ', ' + Cruise.CruiseID As CruiseRoute FROM Route INNER JOIN Cruise ON Route.RouteID = Cruise.RouteID WHERE CruiseID = ?"
Dim cmd As New OleDbCommand(CruiseQuery, cn)
'cmd.Parameters.AddWithValue("CruiseID", OleDbType.Numeric).Value = Route_Txt.Text
cmd.Parameters.AddWithValue(("CruiseID"), OleDbType.Numeric)
Dim reader As OleDbDataReader = cmd.ExecuteReader
'RCTable.Width = Unit.Percentage(90.0)
RCTable.ColumnCount = 2
RCTable.Rows.Add()
RCTable.Columns(0).Name = "CruiseID"
RCTable.Columns(1).Name = "RouteName"
While reader.Read
Dim rID As String = reader("RouteID").ToString()
cmd.Parameters.AddWithValue("?", rID)
row = reader("CruiseID") & "," & ("RouteName")
RCTable.Rows.Add(row)
End While
reader.Close()
cn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
结束类
如果用户在文本框中输入路线名称,则各行应显示每条选定路线的巡航 ID 和路线名称。例如,如果用户在文本框中输入 Asia,单击按钮,则查询应返回前往亚洲的游轮的 CruiseID。
【问题讨论】:
-
"SELECT Route.RouteName + ', ' + Cruise.CruiseID As CruiseRoute将 2 列粘合在一起,因此reader("RouteID")应该会崩溃,因为没有这样的列。RCTable是什么??
标签: vb.net