Так что, когда я нажимаю кнопку удаления и есть кто-то, выбранного в ListBox этот код работаетПредотвращение SelectedIndexChanged при удалении записи в VB.NET
'check if a member is selected
If LBmembers.SelectedItems.Count = 0 Then
MessageBox.Show("You have not selected a member to delete.")
ElseIf LBmembers.SelectedItems.Count > 0 Then
Dim i As String = LBmembers.SelectedItem
Dim dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
Dim dbSource = "Data Source= C:\Users\Gotrek65\Documents\Visual Studio 2013\Projects\Ice Mining Calculator\Ice Mining Calculator\members.mdb "
Dim SqlQuery As String =
"DELETE FROM tblMembers WHERE Member = @ID;"
'remove member(i) from database
Using con = New OleDb.OleDbConnection(dbProvider & dbSource)
Using cmd = New OleDb.OleDbCommand(SqlQuery, con)
con.Open()
cmd.Parameters.AddWithValue("@ID", OleDb.OleDbType.Variant).Value = i
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
TBtimestart.Text = ""
TBtimeend.Text = ""
TBtimecycle.Text = ""
RBpro.Checked = False
RBret.Checked = False
RBcov.Checked = False
RBskiff.Checked = False
RBmack.Checked = False
RBhulk.Checked = False
LBmembers.Items.Remove(LBmembers.SelectedItem)
End If
Private Sub LBmembers_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LBmembers.SelectedIndexChanged
'unfinished
'if the selected idex changes then the individual stats should be retrieved from database and updated
Dim i As String = LBmembers.SelectedItem
Dim dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
Dim dbSource = "Data Source= C:\Users\Gotrek65\Documents\Visual Studio 2013\Projects\Ice Mining Calculator\Ice Mining Calculator\members.mdb "
Dim SqlQuery As String = "SELECT StartTime, EndTime, ShipCode, CycleTime FROM tblMembers WHERE Member = @ID;"
Using con = New OleDb.OleDbConnection(dbProvider & dbSource)
Using cmd = New OleDb.OleDbCommand(SqlQuery, con)
con.Open()
cmd.Parameters.AddWithValue("'@ID'", OleDb.OleDbType.VarWChar).Value = i
'EXCEPTION when deleting data from tblMembers function "Parameter @ID has no default value."
Using reader = cmd.ExecuteReader()
If reader.Read() Then
'reader is outputing "System.Data.OleDb.OleDbDataReader"
'but running the same query in access just yields 4 blank values...
TBtimestart.Text = reader.ToString(0)
TBtimeend.Text = reader.ToString(1)
Dim j = Convert.ToInt32(reader.ToString(2))
TBtimecycle.Text = reader.ToString(3)
If j = 1 Then
RBpro.Checked = True
ElseIf j = 2 Then
RBret.Checked = True
ElseIf j = 3 Then
RBcov.Checked = True
ElseIf j = 4 Then
RBskiff.Checked = True
ElseIf j = 5 Then
RBmack.Checked = True
ElseIf j = 6 Then
RBhulk.Checked = True
Else
RBpro.Checked = False
RBret.Checked = False
RBcov.Checked = False
RBskiff.Checked = False
RBmack.Checked = False
RBhulk.Checked = False
Exit Sub
End If
End If
con.Close()
End Using
End Using
End Using
End Sub
пытается предотвратить SelectedIndexChanged запуск при удалении ввода/член из списка. Любопытно, если есть возможный способ сделать это, потому что это только начинает становиться глупым.
Дополнительная информация о программе.
LBmembers (listbox) используется для обновления базы данных из указанного списка. Также, когда вы выбираете запись в списке (LBmembers), она должна перейти в базу данных (доступ к DB tblMembers (столбцы: элемент (текст), начальный текст (текст), конечный текст (текст), ShipCode (число), CycleTime (число) WorkPercent (номер), доля (число)) должен быть выведен из указанной базы данных и заполняется в их конкретные коробки.
Позвольте мне знать, если вам нужно больше информации о коде.
Это [проблема XY] (http://xyproblem.info/), потому что нет ничего в выполнении домашних заданий, которые говорят, чтобы быть уверенным, чтобы отключить это событие так показать код illustrati. Реальная проблема. Если вам просто не нравится событие, не помещайте в обработчик никакого кода. – Plutonix
Временное разрешение события не имеет никакого эффекта, довольно нормальное, наиболее легко выполняется с помощью простого флага bool. Но это звучит как ошибка. Да, выбранный индекс правильно изменился, потому что вы удалили запись из списка. Но выбранный элемент не изменился. –
сообщение обновлено с гораздо большим количеством кода. Я вижу, что вы указываете на Plutonix и не пытаетесь использовать здесь домашнее слово, поскольку это не программа для работы в школе. Я просто пытаюсь узнать .net, программируя что-то полезное для сообщества. – Gotrek65