Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ASP.net代码页中删除GridView控件中的选定行?_Asp.net_Vb.net - Fatal编程技术网

如何在ASP.net代码页中删除GridView控件中的选定行?

如何在ASP.net代码页中删除GridView控件中的选定行?,asp.net,vb.net,Asp.net,Vb.net,我在ASP.net代码页中有以下VB代码,当我单击“删除链接”按钮时,它会删除GridView中的每一行。是否可以仅删除所选行 Protected Sub grvPos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles grvPos.RowDeleting Dim cs As String Dim con As iDB2Connection Dim sql As String

我在ASP.net代码页中有以下VB代码,当我单击“删除链接”按钮时,它会删除GridView中的每一行。是否可以仅删除所选行

    Protected Sub grvPos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles grvPos.RowDeleting
    Dim cs As String
    Dim con As iDB2Connection
    Dim sql As String
    Dim cmd As iDB2Command
    Dim valDate As Integer
    Dim portCode As String
    Dim secCode As String

    For Each gr As GridViewRow In grvPos.Rows

        valDate = grvPos.DataKeys(gr.RowIndex).Values("VALN_DATE")
        portCode = grvPos.DataKeys(gr.RowIndex).Values("PORT_CODE").ToString()
        secCode = grvPos.DataKeys(gr.RowIndex).Values("SEC_CODE").ToString()

        cs = ConfigurationManager.ConnectionStrings("ConnectionStringDB2").ConnectionString
        con = New iDB2Connection(cs)
        sql = "DELETE FROM OPTR_POS_FIX WHERE (VALN_DATE = @valDate) AND (PORT_CODE = @portCode) AND (SEC_CODE = @secCode)"
        cmd = New iDB2Command(sql, con)
        cmd.Parameters.AddWithValue("@valDate", valDate)
        cmd.Parameters.AddWithValue("@portCode", portCode)
        cmd.Parameters.AddWithValue("@secCode", secCode)

        Try
            Using con
                con.Open()
                cmd.ExecuteNonQuery()

            End Using

        Catch ex As Exception
            Throw

        End Try
    Next
End Sub
谢谢你的帮助
提前感谢

此代码中每个操作符的
将通过网格的所有行进行迭代。相反,您必须只获取选定的行

因此,只需删除每个下一个循环的
,并添加行

GridViewRow gr = grvPos.Rows[e.RowIndex];
UPD。没错,在vb.net语法中,它将是:

Dim gr As GridViewRow
gr = grvPos.Rows(e.RowIndex)

谢谢,为了正常工作,我已经更改了代码

    Dim gr As GridViewRow

    gr = grvPos.Rows(e.RowIndex)

它说GridViewRow是一种类类型,不能用作表达式。@MattJames,对不起,我是习惯性地用c#语法写这行的。你的纠正很好。如果它解决了你的问题,请将答案标记为正确。