Asp.net 中的 DataGrid 和 GridView 批量更新

1.DataGrid 批量更新

在html的form中设置如下的DataGrid

 

< asp:DataGrid  id ="DataGrid1"  style ="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 32px"  runat ="server"
                Width
="912px"  Height ="136px"  AutoGenerateColumns ="False" >
                
< Columns >
                    
< asp:TemplateColumn  HeaderText ="ID" >
                        
< ItemTemplate >
                            
< asp:Label  id =Label1  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.id") % > '>
                            
</ asp:Label >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                    
< asp:TemplateColumn  HeaderText ="用户名" >
                        
< ItemTemplate >
                            
< asp:TextBox  id =TextBox1  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.uname") % > '>
                            
</ asp:TextBox >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                    
< asp:TemplateColumn  HeaderText ="性别" >
                        
< ItemTemplate >
                            
< asp:TextBox  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.sex") % > ' ID="Textbox2">
                            
</ asp:TextBox >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                    
< asp:TemplateColumn  HeaderText ="年龄" >
                        
< ItemTemplate >
                            
< asp:TextBox  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.age") % > ' ID="Textbox3">
                            
</ asp:TextBox >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                    
< asp:TemplateColumn  HeaderText ="电话" >
                        
< ItemTemplate >
                            
< asp:TextBox  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.tel") % > ' ID="Textbox4">
                            
</ asp:TextBox >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                    
< asp:TemplateColumn  HeaderText ="地址" >
                        
< ItemTemplate >
                            
< asp:TextBox  runat ="server"  Text ='<%#  DataBinder.Eval(Container, "DataItem.addr") % > ' ID="Textbox5">
                            
</ asp:TextBox >
                        
</ ItemTemplate >
                    
</ asp:TemplateColumn >
                
</ Columns >
            
</ asp:DataGrid >
            
< asp:Button  id ="Button1"  style ="Z-INDEX: 102; LEFT: 80px; POSITION: absolute; TOP: 232px"  runat ="server"
                Text
="批量更新" ></ asp:Button >

在cs文件中写如下代码

 

private   void  Page_Load( object  sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
            if(!this.IsPostBack)
            
{
                
this.Bind();
            }

        }


        
public   void  Bind()
        
{
            
try
            
{
                SqlDataAdapter da
=new SqlDataAdapter("select * from userinfo",conn);
                DataSet ds
=new DataSet();
                da.Fill(ds,
"gg");
                
this.DataGrid1.DataSource=ds;
                
this.DataGrid1.DataBind();
            
            }

            
catch(Exception Err)
            
{
                
throw Err;
            }

            
finally
            
{

            }


        }

        
Web 窗体设计器生成的代码

        
private   void  Button1_Click( object  sender, System.EventArgs e)
        
{
            
int k=0;
            
for(int i=0;i<this.DataGrid1.Items.Count;i++)
            
{
                
int id=int.Parse(((Label)DataGrid1.Items[i].FindControl("Label1")).Text);
                
string username=((TextBox)DataGrid1.Items[i].FindControl("TextBox1")).Text;
                
string sex=((TextBox)DataGrid1.Items[i].FindControl("TextBox2")).Text;
                
int age=int.Parse(((TextBox)DataGrid1.Items[i].FindControl("TextBox3")).Text);
                
string tel=((TextBox)DataGrid1.Items[i].FindControl("TextBox4")).Text;
                
string addr=((TextBox)DataGrid1.Items[i].FindControl("TextBox5")).Text;
                

                
string sql="update userinfo set uname='"+username+"',sex='"+sex+"',age="+age+",tel='"+tel+"',addr='"+addr+"' where id="+id+"";
                SqlCommand cmd
=new SqlCommand(sql,conn);
                
if(conn.State==ConnectionState.Closed)
                
{
                    conn.Open();
                }

                k
=cmd.ExecuteNonQuery();
            
            }

            
if(k>0)
            
{
                Page.RegisterStartupScript(
"","<script>alert('更新成功!');</script>");
            }


    
        }

 

2.GridView 批量更新

在html的form中设置如下的GridView

 

  < asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  Width ="873px" >
            
< Columns >
                
< asp:TemplateField  HeaderText ="ID" >
                   
                    
< ItemTemplate >
                        
< asp:Label  ID ="Label1"  runat ="server"  Text ='<%#  Bind("id") % > '> </ asp:Label >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
< asp:TemplateField  HeaderText ="用户名" >
                    
                    
< ItemTemplate >
                        
< asp:TextBox  ID ="TextBox2"  runat ="server"  Text ='<%#  Bind("uname") % > '> </ asp:TextBox >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
< asp:TemplateField  HeaderText ="性别" >
                    
                    
< ItemTemplate >
                        
< asp:TextBox  ID ="TextBox3"  runat ="server"  Text ='<%#  Bind("sex") % > '> </ asp:TextBox >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
< asp:TemplateField  HeaderText ="年龄" >
                    
                    
< ItemTemplate >
                        
< asp:TextBox  ID ="TextBox4"  runat ="server"  Text ='<%#  Bind("age") % > '> </ asp:TextBox >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
< asp:TemplateField  HeaderText ="电话" >
                   
                    
< ItemTemplate >
                         
< asp:TextBox  ID ="TextBox5"  runat ="server"  Text ='<%#  Bind("tel") % > '> </ asp:TextBox >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
                
< asp:TemplateField  HeaderText ="地址" >
                   
                    
< ItemTemplate >
                       
< asp:TextBox  ID ="TextBox6"  runat ="server"  Text ='<%#  Bind("addr") % > '> </ asp:TextBox >
                    
</ ItemTemplate >
                
</ asp:TemplateField >
            
</ Columns >
        
</ asp:GridView >
    
    
</ div >
        
< asp:Button  ID ="Button1"  runat ="server"  Text ="批量更新"  OnClick ="Button1_Click"   />

在cs文件中写如下代码

 

 SqlConnection conn  =   new  SqlConnection(ConfigurationManager.AppSettings[ " conn " ]);
    
protected   void  Page_Load( object  sender, EventArgs e)
    
{
        
if (!this.IsPostBack)
        
{
            
this.Bind();
        }

    }

    
private   void  Bind()
    
{
        
try
        
{
            SqlDataAdapter da 
= new SqlDataAdapter("select * from userinfo",conn);
            DataSet ds 
= new DataSet();
            da.Fill(ds, 
"ff");
            
this.GridView1.DataSource = ds;
            
this.GridView1.DataBind();
        }

        
catch (Exception Err)
        
{
            
throw Err;
        }

        
finally
        
{

        }

    }

    
protected   void  Button1_Click( object  sender, EventArgs e)
    
{
        
int k = 0;
        
foreach (GridViewRow gv in GridView1.Rows)
        
{
            
int id = int.Parse(((Label)gv.FindControl("Label1")).Text);
            
string username = ((TextBox)gv.FindControl("TextBox2")).Text;
            
string sex = ((TextBox)gv.FindControl("TextBox3")).Text;
            
int age = int.Parse(((TextBox)gv.FindControl("TextBox4")).Text);
            
string tel = ((TextBox)gv.FindControl("TextBox5")).Text;
            
string addr = ((TextBox)gv.FindControl("TextBox6")).Text;
            
string sql = "update userinfo set uname='" + username + "',sex='" + sex + "',age=" + age + ",tel='" + tel + "',addr='" + addr + "' where id=" + id + "";
            SqlCommand cmd 
= new SqlCommand(sql, conn);
            
if (conn.State == ConnectionState.Closed)
            
{
                conn.Open();
            }

            k 
= cmd.ExecuteNonQuery();
        }

        
if (k > 0)
        
{
            Page.RegisterStartupScript(
"""<script>alert('更新成功!');</script>");
        }


    }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值