CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

我用datagrid去更新user表,发现当我更新一个用户的信息时,datagrid中的数据,却将所有的用户数据更新,并且数据都改为一样的

楼主ylgandxq()2006-06-04 16:26:50 在 .NET技术 / ASP.NET 提问

.aspx文件  
  <%@   Page   Language="C#"   AutoEventWireup="true"   CodeFile="admin.aspx.cs"   Inherits="admin"   %>  
   
  <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
   
  <html   xmlns="http://www.w3.org/1999/xhtml"   >  
  <head   runat="server">  
          <title>无标题页</title>  
  </head>  
  <body>  
          <form   id="form1"   runat="server">  
          <div   align="center">  
                  <asp:DataGrid   ID="DataGrid1"   runat="server"   AutoGenerateColumns="False"   OnEditCommand="mygrid_edit"  
                    OnCancelCommand="mygrid_cancel"   OnUpdateCommand="mygrid_update">  
                    <Columns>  
   
                          <asp:EditCommandColumn  
                                    EditText="编辑"  
                                     
                                    UpdateText="修改"    
                                    HeaderText="修改"  
                                      CancelText="删除"  
                                         
                              >  
   
                                <ItemStyle   Wrap="False">  
                                </ItemStyle>  
   
                                <HeaderStyle   Wrap="False">  
                                </HeaderStyle>  
   
                          </asp:EditCommandColumn>  
   
                         
     
                          <asp:BoundColumn   HeaderText="用户类型"    
                                    ReadOnly="True"    
                                    DataField="usertype"  
                                    ItemStyle-HorizontalAlign="Center"  
                                     
                                    />  
     
                          <asp:BoundColumn   HeaderText="用户名"  
                            DataField="username"  
                            />  
     
                          <asp:BoundColumn   HeaderText="真实姓名"  
                              DataField="name"  
                                      />  
                            <asp:BoundColumn   HeaderText="密码"  
                              DataField="pwd"  
                            />      
                            <asp:BoundColumn   HeaderText="电子邮箱"  
                              DataField="email"  
                               
                              />  
     
     
                    </Columns>  
   
                       
                  </asp:DataGrid></div>  
          </form>  
  </body>  
  </html>  
  .aspx.cs文件  
  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   admin   :   System.Web.UI.Page  
  {  
          protected   void   Page_Load(object   sender,   EventArgs   e)  
          {  
                  if   (!IsPostBack)  
                  {  
                          Binding();  
                  }  
   
          }  
          public   void   mygrid_edit(object   sender,   DataGridCommandEventArgs   e)  
          {  
                  //SqlConnection   con   =   connection.connect();  
                  //DataSet   ds   =   new   DataSet();  
   
                  DataGrid1.EditItemIndex   =   (int)e.Item.ItemIndex;  
                  Binding();  
          }  
          public   void   mygrid_update(object   sender,   DataGridCommandEventArgs   e)  
          {  
                  SqlConnection   con   =   connection.connect();  
                //   DataSet   ds   =   new   DataSet();  
                  string   strupdate   =   "update   users   set     username=@Lusername,name=@Fname,pwd=@pwd,email=@email     ";  
                  SqlCommand   cmd   =   new   SqlCommand(strupdate,   con);  
                  cmd.Parameters.Add(new   SqlParameter("@Lusername",   SqlDbType.NVarChar,   50));  
                  cmd.Parameters.Add(new   SqlParameter("@Fname",   SqlDbType.VarChar,   50));  
                  cmd.Parameters.Add(new   SqlParameter("@pwd",   SqlDbType.NVarChar,   50));  
                  cmd.Parameters.Add(new   SqlParameter("@email",   SqlDbType.NVarChar,   50));  
                  //   cmd.Parameters.Add(new   SqlParameter("@id",   SqlDbType.VarChar,   10));  
                  string[]   stritem   ={   "@Lusername",   "@Fname",   "@pwd",   "@email"   };  
   
   
                //   int   currentid   =   DataGrid1.EditItemIndex;  
                //   if   (DataGrid1.EditItemIndex   ==   currentid)  
               
                          for   (int   i   =   1;   i   <   e.Item.Cells.Count   -   1;   i++)  
                          {  
                                  TextBox   currenttextbox;  
                                  currenttextbox   =   (TextBox)e.Item.Cells[i   +   1].Controls[0];  
                                  string   colvalue;  
                                  colvalue   =   currenttextbox.Text.Trim();  
                                  cmd.Parameters[stritem[i   -   1]].Value   =   colvalue;  
                          }  
                          //   cmd.Parameters["@id"].Value   =   Session["userid"].ToString();  
   
                          cmd.Connection.Open();  
   
   
                          cmd.ExecuteNonQuery();  
                          cmd.Connection.Close();  
                          DataGrid1.EditItemIndex   =   -1;  
   
                          cmd.Connection.Close();  
                          Binding();  
                   
          }  
          public   void   mygrid_cancel(object   sender,   DataGridCommandEventArgs   e)  
          {  
                  DataGrid1.EditItemIndex   =   -1;  
                  Binding();  
          }  
          void   Binding()  
          {  
                  //userid   =   Session["userid"].ToString();  
                  SqlConnection   con   =   connection.connect();  
                  con.Open();  
                  DataSet   ds   =   new   DataSet();  
                  SqlDataAdapter   mydataadapt   =   new   SqlDataAdapter("select   *   from   users     ",   con);  
                  mydataadapt.Fill(ds,   "users");  
                  DataGrid1.DataSource   =   ds.Tables["users"].DefaultView;  
                  DataGrid1.DataBind();  
          }  
  }  
  问题点数:22、回复次数:4Top

1 楼amandag(高歌)回复于 2006-06-04 16:32:05 得分 12

//update语句没加where条件,当然是更新表中所有记录了  
  string   strupdate   =   "update   users   set     username=@Lusername,name=@Fname,pwd=@pwd,email=@email     ";Top

2 楼aspdotnet2005(天中之子、为中原喝采![我想找兼职MSN:Red-Maple@hotmail.com])回复于 2006-06-04 16:55:12 得分 10

update加个where   条件,比如ID或者用户名什么呢,程序怎么知道你要更新哪个记录Top

3 楼ylgandxq()回复于 2006-06-04 17:40:55 得分 0

后来我加了where   userid='"+(e.Item.Itemindex+1)+"'  
  但是他总是提示  
   
                          for   (int   i   =0     ;   i   <   e.Item.Cells.Count   -   1;   i++)  
                          {  
                                  TextBox   currenttextbox;  
                                  currenttextbox   =   (TextBox)e.Item.Cells[i   +   1].Controls[0];  
                                指定的参数已超出有效值的范围。参数名:   index  
                                  string   colvalue;  
                                  colvalue   =   currenttextbox.Text.Trim();  
                                  cmd.Parameters[stritem[i   -   1]].Value   =   colvalue;  
                          }  
  Top

4 楼ylgandxq()回复于 2006-06-04 18:07:04 得分 0

谢谢大家了,这个问题我经解决了,原是我在做for循环的时候下标不正确!Top

相关问题

关键词

得分解答快速导航

  • 帖主:ylgandxq
  • amandag
  • aspdotnet2005

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo