我在如何检索数据库中每个表的2个字段时遇到问题。我在MS Access中保存了3个表,即:RegularPassenger,DisablePassenger和VIPPassenger,每个表都有2个字段,分别是SeatsNo和Filled。
场景是我想让用户看看他们所选择的座位是否已经保留,如果已经保留,则表示彩色按钮。我到目前为止所做的代码是我只能检索一个表。
代码是:
Imports System
Imports System.Data.OleDb
Public Class SeatsAlignment
Dim con As New System.Data.OleDb.OleDbConnection
Dim cmd As New System.Data.OleDb.OleDbCommand
Dim CntRw As Integer
Private Function CheckReservation(ByVal StNo As String) As Boolean
If con.State = ConnectionState.Open Then con.Close()
con = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\laptop\Documents\Trial\Sample.accdb")
con.Open()
cmd.CommandType = CommandType.Text
cmd.CommandText = "Select Count(*) From RegularPassenger Where SeatNo=@StNo And Filled=@StFld"
cmd.Parameters.Add("@StNo", OleDb.OleDbType.VarChar, 10).Value = StNo
cmd.Parameters.Add("@StFld", OleDb.OleDbType.VarChar, 10).Value = "RESERVED"
cmd.Connection = con
CntRw = cmd.ExecuteScalar()
cmd.Parameters.Clear()
cmd.Dispose()
con.Close()
con.Dispose()
Return IIf(CntRw > 0, True, False)
End Function
Private Sub SeatsAlignment_Load(sender As Object, e As EventArgs) Handles MyBase.Load
RPS.Enabled = False
DPS.Enabled = False
VPS.Enabled = False
TextBox1.Enabled = False
TextBox2.Enabled = False
Dim Buttons As New List(Of Button) From {A3, A4, A5, A6, A7, B3, B4, B5, B6, B7, _
C3, C4, C5, C6, C7, D3, D4, D5, D6, D7, E3, E4, E5, E6, E7, F3, F4, F5, F6, F7}
For Each btn As Button In Buttons
If Me.CheckReservation(btn.Name) Then
btn.BackColor = Color.Firebrick
btn.Enabled = False
End If
Next
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
If MsgBox("Are you sure you want to EXIT?", vbYesNo + vbQuestion, _
"Philippine Sweets Airline") = vbYes Then
Me.Close()
End If
End Sub
End Class
我不知道第14行上的确切代码是什么来检索所有3个表。
答案 0 :(得分:0)
您可以使用系统表来获取表格列表:
SELECT Name FROM MSysObjects
WHERE Type=1 AND Flags=0