Member 13101656 Ответов: 1

У меня есть проблема с удалением строки из gridview в VB.NET


Приведенные ниже коды я использовал для удаления строки в gridview
Public Sub BindData()
        com.CommandText = "Select * from markentrysem3"
        com.Connection = con
        ad = New SqlDataAdapter(com)
        ad.Fill(d)
        con.Open()
        com.ExecuteNonQuery()
        GridView1.DataSource = d
        GridView1.DataBind()

        con.Close()
    End Sub
    Protected Sub OnRowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs)
        Dim com As New SqlCommand("DELETE FROM markentrysem3 WHERE StudId= + TextBox2.Text & ")
        com.Parameters.AddWithValue("StudId", StudId)
        com.Connection = con
        con.Open()
        com.ExecuteNonQuery()
        con.Close()
        Me.BindData()
        
    End Sub
    Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow AndAlso e.Row.RowIndex <> GridView1.EditIndex Then
            TryCast(e.Row.Cells(0).Controls(0), LinkButton).Attributes("onclick") = "return confirm('Do you want to delete this row?');"
        End If
    End Sub

    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        If Not Me.IsPostBack Then
            Me.BindData()
        End If
    End Sub

И я получаю ошибку типа:и DataSource, и DataSourceID определены на 'GridView1'. Удалите одно определение.

Что я уже пробовал:

Приведенная выше кодировка используется для удаления строки из gridview, а также у меня есть проблема с редактированием обновления и отменой.

Richard Deeming

Dim com As New SqlCommand ("DELETE FROM markentrysem3 WHERE StudId= + TextBox2. Text & ")

Либо у вас есть синтаксическая ошибка в запросе, и вы получите исключение из SQL...

.. или у вас есть опечатка в вашем вопросе, и ваш код уязвим для SQL-инъекция[^].

1 Ответов

Рейтинг:
2

CHill60

Ошибка ясно говорит вам, что не так и что нужно сделать, чтобы исправить проблему.

У вас есть привязка данных, определенная во время разработки (т. е. через окно свойств в IDE в режиме разработки)

Вы также выполняете привязку данных в функции BindData.

Выберите только один метод,вы не можете сделать оба.

Я предлагаю вам перейти в окно свойств, когда выбрана DataGrid, и удалить DataSourceID (а также DataMember и DataKeyNames, если они установлены).

Поскольку вы не объяснили, в чем проблема с edit update и cancel, мы не можем вам помочь.