Griview中DataKeyNames的用法(多个字段作主键)
来源:互联网 发布:基金百分之几怎么算法 编辑:程序博客网 时间:2024/06/05 08:30
/*在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 身份证号码='" + 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();
}
- Griview中DataKeyNames的用法(多个字段作主键)
- Griview中DataKeyNames的用法(多个主键)?
- Griview中DataKeyNames的用法(多个主键)?
- 数据库中使用自增量字段与Guid字段作主键的性能对比
- DatakeyNames和DataKeys的用法
- datakeys和datakeynames的用法!
- DatakeyNames和DataKeys的用法
- 主键为多个字段的映射问题
- GridView的DataKeyNames的一些用法
- 【转】GridView的DataKeyNames的一些用法
- 没有DataKeyField而用DataKeyNames的用法。
- Hibernate学习--------多个字段联合做主键(Annotation版本的,xml不常用)
- Griview的简单用法(分页,编辑,删除,选中删除)
- GridView中DataKeyNames的应用小结
- GridView中DataKeyNames的应用小结
- gridveiw中DataKeyNames属性的作用
- GridView中DataKeyNames的应用小结
- oracle中如何查找表的主键字段
- Java Servlet和JSP教程:七、HTTP应答状态
- 终于把自己卖了
- 代码优化-之-优化除法
- 忙,乱。
- subversion在windows上的安装
- Griview中DataKeyNames的用法(多个字段作主键)
- JavaScript的回调(CallBack)方法
- Frame中关于Session丢失的解决方法
- ASP.NET服务器端与javascript交互的一种方法
- Java Servlet和JSP教程:八、设置HTTP应答头
- Cheap L2 Adena
- ASP.NET中调用日历控件
- 利用Asp.net IO.File类完成文件新建复制删除操作
- 在.net安装程序中部署oracle客户端全攻略-.NET教程,VB.Net语言