我有一个数据列表控件,我使用我在后面的代码中创建的数据表填充。我需要能够从用户选择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;
}
}
`
答案 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>