ASP.NET基础教程-DataGrid表格控件-更新数据
2007-10-10 09:56:13
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenxing.blog.51cto.com/240526/45666 |
一、界面设置
1、在页面上添加五个标签和五个文本框和一个按扭,用于添加数据。 2、在页面上添加一个表格,给表格添加五个绑定列一两个按钮列。 ![]() 二、CS代码 1、//页面初始化 public class WebForm2 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid; protected System.Web.UI.WebControls.Button Button2; protected System.Web.UI.WebControls.TextBox txt_userid; protected System.Web.UI.WebControls.TextBox txt_level; protected System.Web.UI.WebControls.TextBox txt_name; protected System.Web.UI.WebControls.TextBox txt_station; protected System.Web.UI.WebControls.TextBox txt_dept; protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Label Label2; protected System.Web.UI.WebControls.Label Label3; protected System.Web.UI.WebControls.Label Label4; protected System.Web.UI.WebControls.Label Label5; private static DataSet ds; private static SqlConnection con; private static SqlDataAdapter da; private static string id=""; 2、//页面加载事件对da对象进行设置
private void Page_Load(object sender, System.EventArgs e){ if(!IsPostBack){ con=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["server"]); con.Open(); da=new SqlDataAdapter(); //当DataAdapter对象执行fill()或update()方法时,会分别调用以下四个命令对数据库进行访问和回添解析 da.SelectCommand=new SqlCommand("select userid,name,level,station,dept,ID from verifya",con); da.UpdateCommand=new SqlCommand("update verifya set userid=@userid,name=@name,level=@level,station=@station,dept=@dept where id=@id",con);
da.DeleteCommand=new SqlCommand("delete from verifya where id=@id",con); da.InsertCommand=new SqlCommand("insert into verifya(userid,name,level,station,dept) values (@userid,@name,@level,@station,@dept)",con);
//为UpdateCommand命令填加参数,并设置参数值。参数值为内存表被改动的行值. //参数的value应该等于内存表中被修改行的userid值 da.UpdateCommand.Parameters.Add("@userid",SqlDbType.VarChar ,10,"userid"); //参数的value应该等于内存表中被修改行的name值 da.UpdateCommand.Parameters.Add("@name",SqlDbType.VarChar,10,"name"); //参数的value应该等于内存表中被修改行的level值 da.UpdateCommand.Parameters.Add("@level",SqlDbType.VarChar,10,"level"); //参数的value应该等于内存表中被修改行的station值 da.UpdateCommand.Parameters.Add("@station",SqlDbType.VarChar,30,"station"); //参数的value应该等于内存表中被修改行的DEPT值 da.UpdateCommand.Parameters.Add("@dept",SqlDbType.VarChar,10,"dept"); //参数的value应该等于内存表中被修改行的ID值 da.UpdateCommand.Parameters.Add("@id",SqlDbType.UniqueIdentifier,16,"id"); //为DeleteCommand命令填加参数,并设置参数值。参数值为内存表被删除的行值 //参数的value应该等于内存表中被删除行的id值 da.DeleteCommand.Parameters.Add("@id",SqlDbType.UniqueIdentifier,16,"id"); //为InsertCommand命令填加参数,并设置参数值。参数值为内存表被插入的行值 //参数的value应该等于内存表中被修改行的userid值 da.InsertCommand.Parameters.Add("@userid",SqlDbType.VarChar ,10,"userid"); //参数的value应该等于内存表中被修改行的name值 da.InsertCommand.Parameters.Add("@name",SqlDbType.VarChar,10,"name"); //参数的value应该等于内存表中被修改行的level值 da.InsertCommand.Parameters.Add("@level",SqlDbType.VarChar,10,"level"); //参数的value应该等于内存表中被修改行的station值 da.InsertCommand.Parameters.Add("@station",SqlDbType.VarChar,30,"station"); //参数的value应该等于内存表中被修改行的dept值 da.InsertCommand.Parameters.Add("@dept",SqlDbType.VarChar,10,"dept"); //声明记录集对象 ds=new DataSet(); //将数据库中提取出的数据加载到记录集 da.Fill(ds,"verify"); //关闭数据库 con.Close(); //给表格设置数据源 DataGrid.DataSource=ds.Tables["verify"]; //数据绑定 DataGrid.DataBind(); } } 3、当点击添加按扭
private void Add_Click(object sender, System.EventArgs e)//添加数据 { try//若插入重复值或插入数值不合理,会导致插入失败而引发异常,在这里捕获异常,并显示提示信息 { DataRow d=ds.Tables["verify"].NewRow();//声明行变量d,d与stu表中的行结构相同 d["userid"]=txt_userid.Text;//向这一新行的列中赋值 d["name"]=txt_name.Text;//向这一新行的列中赋值 d["level"]=txt_level.Text;//向这一新行的列中赋值 d["station"]=txt_station.Text;//向这一新行的列中赋值 d["dept"]=txt_dept.Text;//向这一新行的列中赋值 ds.Tables["verify"].Rows.Add(d);//将这一新行追加入verify表中 //将做新行的值做为参数传给InsertCommand命令,并调用InsertCommand命令, 去将新行插入数据库中,将内存表中的变动解析回数据库 da.Update(ds,"verify"); //重新绑定DataGrid DataGrid.DataSource=ds.Tables["verify"]; DataGrid.DataBind(); } catch { Response.Write("输入值重复或数值类型不相配"); } } 4、当点击表格的编辑按钮
private void DataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { //从DataGrid中取出要更新记录的ID id=(string)e.Item.Cells[5].Text; //设置表格的编辑行索引值为当前行的索引 DataGrid.EditItemIndex=e.Item.ItemIndex; //重新绑定数据源 DataGrid.DataSource=ds.Tables["verify"]; DataGrid.DataBind(); } 5、当点击取消按钮 private void DataGrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){ //设置表格的编辑行索引值为-1
DataGrid.EditItemIndex=-1; //重新绑定数据源 DataGrid.DataSource=ds.Tables["verify"]; DataGrid.DataBind(); } 6、当点击更新按钮
private void DataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){ string userid=((TextBox)(e.Item.Cells[0].Controls[0])).Text;
string name=((TextBox)(e.Item.Cells[1].Controls[0])).Text; string level=((TextBox)(e.Item.Cells[2].Controls[0])).Text; string station=((TextBox)(e.Item.Cells[3].Controls[0])).Text; string dept=((TextBox)(e.Item.Cells[4].Controls[0])).Text; DataRow[] d=ds.Tables["verify"].Select("id='"+id+"'");//在内存表中找出想修改的行 for(int i=0;i<d.Length;i++) { d[i]["userid"]=userid;//在内存表中把予修改的行中的列值进行赋值 d[i]["name"]=name;//在内存表中把予修改的行中的列值进行赋值 d[i]["level"]=level;//在内存表中把予修改的行中的列值进行赋值 d[i]["station"]=station;//在内存表中把予修改的行中的列值进行赋值 d[i]["dept"]=dept;//在内存表中把予修改的行中的列值进行赋值 } //将被修改的行值做为参数传给UpdateCommand命令,并调用UpdateCommand命令, 去修改数据库中相应值,将内存表中的变动解析回数据库 da.Update(ds,“verify”); ds.AcceptChanges();//将内存表进行物理变更 DataGrid.EditItemIndex=-1;//恢复DataGrid //用内存表重新绑定DataGrid DataGrid.DataSource=ds.Tables["verify"]; DataGrid.DataBind(); } 7、当点击删除按钮
private void DataGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { id=(string)e.Item.Cells[5].Text;//从DataGrid中取出被删行的学号 DataRow[] d=ds.Tables["verify"].Select("id='"+id+"'");//在内存表中找出想删行 for(int i=0;i<d.Length;i++) { d[i].Delete();//在内存表中把予删的行做删除标记 } //将做删除标记的行的值做为参数传给DeleteCommand命令,并调用DeleteCommand命令, 去删除数据库中相应行,将内存表中的变动解析回数据库 da.Update(ds,"verify"); ds.AcceptChanges();//将内存表进行物理变更 DataGrid.DataSource=ds.Tables["verify"]; //用内存表重新绑定DataGrid DataGrid.DataBind(); } ![]() |




晨星
博客统计信息
热门文章
最新评论
友情链接
