简体   繁体   中英

Deleting a folder from database

i want to delete a folder from my database when button is clicked.

...
<td><%#Eval("FolderId").ToString() %></td>
...

I list files using the file ID.

Here is my btnDelete codes;

protected void btnDelete_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString);
        con.Open();
        SqlCommand del = new SqlCommand("delete * from Folders where FolderId=@id");
        del.Parameters.AddWithValue("id", ???);
        del.ExecuteNonQuery();
        con.Close();
    }

What should I write to the @id parameter value?

<asp:Repeater ID="rptC" runat="server"> 
  <HeaderTemplate> 
  <center><table cellpadding="0" cellspacing="0" width="400"> 
  <caption><b>Files</b></caption> 
  <thead> 
  <tr> 
  <th>File ID</th> 
  <th>Path</th> 
  <th>?</th> 
  </tr> 
  </thead> 

  </HeaderTemplate> 
  <ItemTemplate> 
  <tbody> 
  <tr> 
  <td><%#Eval("FolderId").ToString() %></td> 
  <td><%#Eval("FilePath").ToString() %></td>
  <td><asp:Button ID="btnDelete" CssClass="btnH" ForeColor="#ffffff"     BackColor="#ba04c2" Text="Delete" runat="server" OnClick="btnDelete_Click"/></td> 

  </tr> 
  </tbody> 
  </ItemTemplate> 
  <FooterTemplate> 
  </table> </center>
  </FooterTemplate> 
  </asp:Repeater>

The proper way to implement that is using the Repeater ItemCommand event.

Markup

<asp:Repeater ID="repeater" runat="server" OnItemCommand="repeater_ItemCommand">
    <ItemTemplate>
        <%# Eval("Text") %>
        <asp:LinkButton runat="server" ID="DeleteButton"  Text="Text" CommandName="Delete" CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>

    </ItemTemplate>
</asp:Repeater>

Code Beside

protected void Page_Load(object sender, EventArgs e)
{
    repeater.DataSource = new[] {
        new {Id= 1, Text = "Text 1"  },
        new {Id= 2, Text = "Text 2"  },
    };
    repeater.DataBind();
}

protected void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "Delete")
    {
        Response.Write($"Do something with {e.CommandArgument}");
    }

}

Source Code here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM