博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

Griview中DataKeyNames的用法(多个主键)?

Posted on 2008-03-09 03:13  匆匆  阅读(3450)  评论(0编辑  收藏  举报
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 身份证号码='" + 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[] { "身份证号码" };
        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");
            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];
                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();
    }
}