Проект плацкарты глаг
Привет ребята Итак у меня есть этот проект который я строю для программы бронирования мест в кинотеатре используя vb.net и доступ к базе данных.Я использую pictureboxes в качестве своих мест ,а также у меня есть номера строк и столбцов, поэтому я хочу, чтобы при нажатии на picturebox он автоматически показывал номер места и номер строки, а также забронированные места при перезагрузке формы, но пока код меняется только на изображения, которые у меня есть код, когда он забронирован, и ничего не идет в базу данных, чтобы показать забронированные места .Мне нужна ваша помощь, ребята.Взгляните на мой vb-код.
Что я уже пробовал:
Imports System.Data.OleDb Public Class Form1 Dim availableicon As New System.Drawing.Bitmap(My.Resources.available) Dim provisionalicon As New System.Drawing.Bitmap(My.Resources.provisional) Dim bookedicon As New System.Drawing.Bitmap(My.Resources.booked) Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim c As Control For Each c In Me.Controls If TypeOf (c) Is PictureBox Then CType(c, PictureBox).Image = availableicon AddHandler c.Click, AddressOf A10_Click End If Dim stSQL As String stSQL = "SELECT BookingID,CustomerID,seat From Bookings" Dim ConnectionString As String ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\West\Desktop\TMS\TicketBooking.accdb" Dim conBookings As OleDbConnection conBookings = New OleDbConnection conBookings.ConnectionString = ConnectionString conBookings.Open() Dim cmdSelectBookings As OleDbCommand cmdSelectBookings = New OleDbCommand cmdSelectBookings.CommandText = stSQL cmdSelectBookings.Connection = conBookings Dim databaseBookings As New DataSet Dim databookings As New OleDbDataAdapter(cmdSelectBookings) databookings.Fill(databaseBookings, "Bookings") conBookings.Close() 'MessageBox.Show(databaseBookings.Tables("Bookings").Rows.Count) Next Call UpdateBookings() End Sub Sub UpdateBookings() Dim stSQL As String stSQL = "SELECT BookingID,CustomerID,seat From Bookings" Dim ConnectionString As String ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ West\Desktop\TMS\TicketBooking.accdb" Dim conBookings As OleDbConnection conBookings = New OleDbConnection conBookings.ConnectionString = ConnectionString conBookings.Open() Dim cmdSelectBookings As OleDbCommand cmdSelectBookings = New OleDbCommand cmdSelectBookings.CommandText = stSQL cmdSelectBookings.Connection = conBookings Dim databaseBookings As New DataSet Dim databookings As New OleDbDataAdapter(cmdSelectBookings) databookings.Fill(databaseBookings, "Bookings") conBookings.Close() End Sub Private Sub picturebox10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) If CType(sender, PictureBox).Image Is availableicon Then CType(sender, PictureBox).Image = provisionalicon ElseIf CType(sender, PictureBox).Image Is provisionalicon Then CType(sender, PictureBox).Image = bookedicon End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncontinue.Click Dim c As Control Dim bselected As Boolean For Each c In Me.Controls If TypeOf (c) Is PictureBox Then If CType(c, PictureBox).Image Is provisionalicon Then bselected = True Exit For End If End If Next If bselected = False Then MessageBox.Show("please select at least one seat to book") Exit Sub End If Dim stSQLInsert As String stSQLInsert = "INSERT INTO Bookings(SEATID,ROW,NUMBER)" Dim ConnectionString As String ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\West\Desktop\TMS\TicketBooking.accdb" Dim conBookings As OleDbConnection conBookings = New OleDbConnection conBookings.ConnectionString = ConnectionString conBookings.Open() Dim cmdSelectBookings As OleDbCommand cmdSelectBookings = New OleDbCommand cmdSelectBookings.Connection = conBookings Dim iseatnum As Integer For Each c In Me.Controls If TypeOf (c) Is PictureBox Then If CType(c, PictureBox).Image Is provisionalicon Then stSQLInsert = "INSERT INTO Bookings(SEATID,ROW,NUMBER) VALUES('" & Me.txtcustomer.Text & "'," & iseatnum & ")" cmdSelectBookings.CommandText = stSQLInsert cmdSelectBookings.ExecuteNonQuery() End If End If Next conBookings.Close() Call UpdateBookings() End Sub End Class
Richard Deeming
Вы заявляете о том, что iseatnum
переменная, но вы никогда не устанавливаете ее ни на что. Вы закончите тем, что попытаетесь вставить 0
для каждого выбранного места.
Вы также передаете только два значения в поле VALUES
предложение, но вы указали три столбца. Вы получите исключение, указывающее, что ваш синтаксис неверен.