GridView多筆刪除

摘要:GridView多筆刪除

首先建立資料庫中的資料表,將他命名為User

接下來建立aspx,從工具箱拉GridView至內容中,並加入一行樣版如圖

 

以下為html程式碼必需將CheckBox 的text綁UserID

<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server">
        <Columns>
            <asp:TemplateField>
                <HeaderTemplate>
                    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Eval("UserID") %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    </form>
</body>

 

接著撰寫CS檔,如下

 

using ...System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Data.OleDb;//使用Access時,需加入的參考  
using System.Data;//使用datatable時,需加入的參考  
  
public partial class Default2 : System.Web.UI.Page  
...{  
    OleDbConnection strconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=C:\\Education\\education\\MessageBoard\\App_Data\\exam.mdb;" + "Persist Security Info=True;");//Access連接字串  
  
    protected void Page_Load(object sender, EventArgs e)  
    ...{  
        strconn.Open();
        OleDbDataAdapter da = new OleDbDataAdapter("Select * From [User]", strconn);//取得資料庫中Class資料表資料  
        DataTable dt = new DataTable();//初始化一個datatable  
        da.Fill(dt);//將da取得的資料填入datatable中  
        GridView1.DataSource = dt;  
        GridView1.DataBind();  
        strconn.Close();
    }
  
  
    protected void Button1_Click(object sender, EventArgs e)  
    ...{  
        string src = "";  
        foreach (GridViewRow row in GridView1.Rows)  
        ...{  
            if (row.RowType == DataControlRowType.DataRow)  
            ...{  
                CheckBox cb = (CheckBox)row.Cells[0].FindControl("CheckBox1");  
                if (cb.Checked)  
                ...{  
                    src = cb.Text.ToString();  
                    OleDbCommand cmd = new OleDbCommand(string.Format("Delete From [User] Where [UserID]=...{0}", src), strconn);  
                    cmd.ExecuteNonQuery();  
                    strconn.Close();  
                }
  
            }
  
        }
  
    }
  
}

 

執行結果,點勾完CheckButton後點選Button時資料將會刪除