程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Griview中DataKeyNames的用法(多個字段作主鍵)

Griview中DataKeyNames的用法(多個字段作主鍵)

編輯:.NET實例教程

/*在GridvIEw中進行刪除操作時要用到獲得該列的主鍵,下面分別介紹單個主鍵和多個主鍵的獲取方法,顏色標記部分為核心代碼,大家可以自己建個數據庫進行測試*/

1.單個字段作主鍵 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClIEnt; 
public partial class GridVIEwCheckbox : System.Web.UI.Page 

    SqlConnection sqlcon; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) 
        { 
            bind(); 
        } 
    } 
    protected void CheckBox2_CheckedChanged(object sender, EventArgs e) 
    { 
        for (int i = 0; i <= GridVIEw1.Rows.Count - 1; i++) 
        { 
            CheckBox cbox = (CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
            if (CheckBox2.Checked == true) 
            { 
                cbox.Checked = true; 
            } 
           ; else 
            { 
                cbox.Checked = false; 
            } 
        } 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
        sqlcon = DB.createCon(); 
        SqlCommand sqlcom; 
        for (int i = 0; i <= GridVIEw1.Rows.Count - 1; i++) 
        { 
            CheckBox cbox = (CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
            if (cbox.Checked == true) 
            { 
                string sqlstr = "delete from Employee where SFZ號碼=''" + GridVIEw1.DataKeys[i].Value + "''"; 
                sqlcom = new SqlCommand(sqlstr, sqlcon); 
                sqlcon.Open(); 
                sqlcom.ExecuteNonQuery(); 
                sqlcon.Close(); 
            }
        } 
        bind(); 
    } 
    protected void Button2_Click(object sender, EventArgs e) 
    { 
        CheckBox2.Checked = false; 
        for (int i = 0; i <= GridVIEw1.Rows.Count - 1; i++) 
        { 
            CheckBox cbox = (CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
            cbox.Checked = false; 
        } 
    } 
    public void bind() 
    { 
        string sqlstr = "select top 4 * from Employee"; 
        sqlcon = DB.createCon(); 
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); 
        DataSet myds = new DataSet(); 
        sqlcon.Open(); 
        myda.Fill(myds, "Employee"); 
        GridVIEw1.DataSource = myds; 
        GridVIEw1.DataKeyNames = new string[] { "SFZ號碼" }; 
        GridVIEw1.DataBind(); 
        sqlcon.Close(); 
    } 
}
2.多個主鍵 
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClIEnt; 
public partial class SendMessageBox : System.Web.UI.Page 

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if(!IsPostBack) 
        { 
            bind(); 
        } 
    } 
    public void bind() 
    { 
        string str = "select * from Sms_Send"; 
        SqlConnection con = DB.CreateDB(); 
        SqlDataAdapter da = new SqlDataAdapter(str, con); 
        DataSet ds = new DataSet(); 
        con.Open(); 
        da.Fill(ds, "Sms_Send"); 
        GridVIEw1.DataSource = ds; 
        GridVIEw1.DataKeyNames = new string[] { "Mobile", "SendTime" }; 
        GridVIEw1.DataBind(); 
    } 
    protected void GridView1_RowDataBound(object sender, GridVIEwRowEventArgs e) 
    { 
        foreach (TableCell tc in e.Row.Cells) 
        { 
            tc.Attributes["style"] = "border-color:Black"; 
        } 
        if (e.Row.RowIndex != -1) 
        { 
            int id = e.Row.RowIndex + 1; 
            e.Row.Cells[1].Text = id.ToString(); 
        }     
    } 
    protected void GridView1_PageIndexChanging(object sender, GridVIEwPageEventArgs e) 
    { 
        GridVIEw1.PageIndex = e.NewPageIndex; 
        bind(); 
        GridVIEw1.PageIndex = e.NewPageIndex; 
    } 
    protected void btnSelectAll_Click(object sender, ImageClickEventArgs e) 
    { 
        for(int i=0;i<=GridVIEw1.Rows.Count-1;i++) 
        { 
            CheckBox cbox = (CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
   &nbsp;        if(cbox.Checked==false) 
            { 
  ;              cbox.Checked=true; 
            } 
        } 
    } 
    protected void btnCancel_Click(object sender, ImageClickEventArgs e) 
    { 
        for(int i=0;i<=GridVIEw1.Rows.Count-1;i++) 
        { 
            CheckBox cbox=(CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
            if(cbox.Checked==true) 
            { 
                cbox.Checked=false; 
            } 
        } 
    } 
   protected void btnQuery_Click(object sender, ImageClickEventArgs e)
    {
        DateTime start = DateTime.Parse(txtStart.Text.ToString());// Convert.ToDateTime(txtStart.Text.ToString());
        DateTime end = Convert.ToDateTime(txtEnd.Text.ToString());
        if (end <= start)
        {
            Page.RegisterStartupScript("message", "<Script>alert(''結束日期必須大於開始日期!'')</Script>");
            return;
        }
        string str = "select * from Sms_Send where SendTime between ''" + start + "'' and ''" + end + "''";//"select * from Sms_Send where SendTime>=start and SendTime<=end";
        SqlConnection con = DB.CreateDB();
        SqlDataAdapter da = new SqlDataAdapter(str, con);
        DataSet ds = new DataSet();
        da.Fill(ds, "Sms_Send");
        GridVIEw1.DataSource = ds;
        GridVIEw1.DataKeyNames = new string[] { "Mobile", "SendTime" };
        GridVIEw1.DataBind();
    }
    protected void btnDelete_Click(object sender, ImageClickEventArgs e) 
    { 
        SqlConnection con = DB.CreateDB(); 
        SqlCommand cmd; 
        for (int i = 0; i <= GridVIEw1.Rows.Count - 1; i++) 
        { 
            CheckBox cbox = (CheckBox)GridVIEw1.Rows[i].FindControl("CheckBox1"); 
            if (cbox.Checked == true) 
            { 
                DataKey datakey = GridVIEw1.DataKeys[i]; 
  &nbs
p;             string mobile = datakey["Mobile"].ToString(); 
                string sendTime = datakey["SendTime"].ToString(); 
                string str = "delete from Sms_Send where Mobile=''" + mobile + "''and SendTime=''" + sendTime + "''"; 
            cmd = new SqlCommand(str, con); 
                con.Open(); 
                cmd.ExecuteNonQuery(); 
                con.Close(); 
            } 
        } 
        bind(); 
    } 
 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved