Msgbox Да Нет и кнопка отмены работает в VB.NET 2010

Ниже мой код для MsgBox. Кнопка Да работает, но когда я нажимаю Нет или Отмена, данные все равно удаляются...

        strup = "DELETE FROM student WHERE urno =" & CInt(txtUrn.Text) & ";"
        Dim command As New OleDb.OleDbCommand(strup, con)
        MsgBox("Do you want to delete record(s)", MsgBoxStyle.YesNoCancel, "Confirm Delete")
        command.ExecuteNonQuery()
        con.Close()

Как отменить операцию удаления при нажатии Нет или Отмена?


person CrashOverride    schedule 16.03.2013    source источник


Ответы (3)


Используйте основной оператор If, чтобы проверить возвращаемое значение MsgBox. MsgBox сам по себе ничего не отменяет.

If MsgBox("Prompt", MsgBoxStyle.YesNoCancel, "Title") = MsgBoxResult.Yes Then
    ' execute command
End If

Вы также можете использовать MsgBoxStyle.YesNo, чтобы получить только кнопки Да и Нет.

person PurkkaKoodari    schedule 16.03.2013

Похоже на If...Then, но я думаю, что это чище

Select Case MsgBox("Are you sure ?", MsgBoxStyle.YesNo, "Delete")
    Case MsgBoxResult.Yes
        ' Do something if yes
    Case MsgBoxResult.No
        ' Do something if no
End Select
person djv    schedule 17.03.2013
comment
Кстати, вы должны использовать эквивалент .NET, System.Windows.Forms.MessageBox.Show() вместо MsgBox. Хотя они оба указывают на версию .NET, мы перешли на .NET, и есть несколько причин придерживаться синтаксиса VB6. stackoverflow .com/questions/8799976/ - person djv; 18.03.2013

Тем не менее MsgBox не будет работать в производственной среде ASP.NET или QA, а не в среде разработки.

person Vijay    schedule 15.11.2013