如何从数据表中删除绑定数据列表控件

时间:2015-08-28 13:59:11

标签: c# asp.net .net

我有一个数据列表控件,我使用我在后面的代码中创建的数据表填充。我需要能够从用户选择drop datalist中的项目中删除数据表中的记录。我在datalist中有一个链接按钮控件,我还有一个Label,用于存储数据表中行的ID和ID。我该怎么做呢?

       ` DataTable dt;
        if (ViewState["CurrentData2"] != null)
        {
            dt = (DataTable)ViewState["CurrentData2"];
        }
        else
        {
            dt = new DataTable();
            dt.Columns.Add("Sort Order", typeof(Int64));
            dt.Columns.Add("Task Number", typeof(String));
            dt.Columns.Add("Client Name", typeof(String));

            dt.Columns.Add("Amount Due", typeof(decimal));
            dt.Columns.Add("Change", typeof(decimal));
            dt.Columns.Add("Receipt Amount", typeof(decimal));
            dt.Columns.Add("Receipt Number", typeof(string));

            //**Update**/
            ViewState["CurrentData2"] = dt;


     protected void dl_COD_SelectedIndexChanged(object sender, EventArgs e)
     {
         DataTable dt = GetDataTable2();

        for (int i = dt.Rows.Count - 1; i >= 0; i--)
        {
            DataRow dr = dt.Rows[i];
            if (dt.Rows[i]["Task Number"].ToString() == dl_COD.Items[1].Controls.ToString())
                dt.Rows.Remove(dr);
            // i--;
        }
        BindGrid();
        if (dt.Rows.Count <= 0)
        {
            mv_BulkUpdate.ActiveViewIndex = -1;
        }
    }

`

1 个答案:

答案 0 :(得分:2)

如果没有代码示例,您的问题很难理解,但我相信您所了解的是<asp:SqlDataSource>,它允许您使用列表中的ID从列表和数据库中删除。

这与<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource" DataKeyNames="Id" InsertItemPosition="FirstItem" ItemPlaceholderID="lay0" OnItemCommand="ListView1_ItemCommand" AllowPaging="True" EnableViewState="true">密切相关,您可以在其中使用各种模板来执行CRUD操作。

更多信息here

因此,下面你使用webconfig中指定的连接字符串,如下所示的数据源可以放在你的aspx或cs / vb中,我总是在aspx中找到它。

<asp:SqlDataSource ID="SqlDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Table]" CancelSelectOnNullParameter="True" DataSourceMode="DataReader"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    DeleteCommand="DELETE FROM [Table] WHERE Id = @Id;"
    InsertCommand="INSERT INTO [Table] ([Title], [Details], VALUES (@Title, @Details)"
    SelectCommand="SELECT * FROM [Table] ORDER BY [Title] DESC"
    UpdateCommand="UPDATE [Table] SET [Title] = @Title, [Details] = @Details WHERE [Id] = @Id ">
    <DeleteParameters>
        <asp:Parameter Name="Id" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="Title" Type="String" />
        <asp:Parameter Name="Details" Type="String" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="Title" Type="String" />
        <asp:Parameter Name="Details" Type="String" />
        <asp:Parameter Name="Id" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>