0

また。

gridview マークアップには、次のものがあります。

   <asp:TemplateField HeaderText="Dates">
     <ItemTemplate>
      <asp:Label ID="dates_label runat="server" Text='<%# Bind("shipDates","{0:M/dd/yyyy}") %>'></asp:Label>
    </ItemTemplate> 
   </asp:TemplateField>


   <asp:TemplateField>
    <ItemTemplate>  
     <asp:HiddenField ID="ehide" Value='<%# Eval("eventId") %>' runat="server" />
    </ItemTemplate>
   </asp:TemplateField>

グリッドビューには複数行のレコードが表示され、非表示のフォーム フィールドを使用して、行をイベント テーブルの特定のイベント ID に関連付けることができます。

以下は、レコードの各行を削除しようとする分離コードです。

    For Each row As GridViewRow In GridView1.Rows
        Dim dates_label = DirectCast(row.FindControl("dates_label"), Label)
        Dim shipDates = Date.ParseExact(dates_label.Value, "M/dd/yyyy", Nothing)

        Dim ehide = DirectCast(row.FindControl("ehide"), HiddenField)
        Dim eventid = ehide.Value

        Dim myConnectionString As [String] = ConfigurationManager.ConnectionStrings("DBConnectionString").ConnectionString
        Dim myConnection As New SqlConnection(myConnectionString)
        Try
            myConnection.Open()
            strSQL = "Delete from tblEvents where username=@UserName and eventid = @eventid"
            com = New SqlCommand(strSQL, myConnection)
            com.Parameters.AddWithValue("@username", Session("username"))
            com.Parameters.AddWithValue("@eventid", eventid)
            Response.Write(strSQL)
            Response.End()
            com.ExecuteNonQuery()
            myConnection.Close()
            Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('Information Saved successfully')</SCRIPT>")
            Response.Redirect("~/default.aspx")
        Catch ex As SqlException
            Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('" + ex.Message + "')</SCRIPT>")
        Finally
            myConnection.Close()
        End Try
    Next

このサブシステムでデバッガーを実行すると、最初のイベント ID を持つ行を削除しようとします。

たとえば、イベント テーブルに 5 行のレコードがあり、イベント ID が 1、2、3、4、5 であるとします。これらは、簡潔にするために作成された数字です。

eventId 1 の最初のレコードを削除しようとすると、次のようになります。

eventId = 1 の tblEvents から削除

eventId 5 の行を削除しようとすると、次のようになります。

eventId = 1 の tblEvents から削除

各行がそのrowIdによって削除されるようにこれを解決するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1