Как удалить данные о событии page_load, если literal3.text = "N"? - PullRequest
0 голосов
/ 22 февраля 2011

Я хочу удалить запись о событии загрузки страницы ... используя vb.net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Literal3.Text = "N" Then
    Dim con As New SqlConnection
                Dim cmd As New SqlCommand
                con.ConnectionString = "My connection string"
                con.Open()
                cmd.Connection = con
                cmd.CommandText = "DELETE FROM a1_ticket WHERE Ticket_no='" & Literal3.Text & "'"
                cmd.ExecuteNonQuery()
                con.Close()
                cmd = New SqlCommand("DELETE FROM a1_holds WHERE Ticket_no='" & Literal3.Text & "'", con)
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
End If
End Sub

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

cmd.CommandType = System.Data.CommandType.Text

Поставьте try{} catch и посмотрите, поймаете ли вы исключение?

используйте SQL-запрос, например:

cmd.CommandText = String.Format("DELETE FROM a1_ticket WHERE Ticket_no='{0}'" Literal3.Text.ToString())

и отладьтеcmd.CommandText и посмотрите, что выводит строка:

Ticket_no a VARCHAR или INT?

0 голосов
/ 22 февраля 2011

Несколько вещей приходят на ум ...

  • Вы перегружаете Literal3 - используя поле в качестве флага для управления потоком в операторе удаления, а также в качестве номераБилет будет удален.
  • Действительно ли номер билета является строкой?Если нет, то почему вы цитируете его в операторе удаления?
  • вам действительно нужно параметризовать запрос, чтобы избежать атак с использованием инъекций
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...