首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于GridView空间的更新有关问题

2012-03-20 
关于GridView空间的更新问题Page_Load代码SqlCommand cmd new SqlCommand(select * from Teacher,conn

关于GridView空间的更新问题
Page_Load代码
  SqlCommand cmd = new SqlCommand("select * from Teacher",conn);
  SqlDataAdapter da = new SqlDataAdapter(cmd);
  DataTable dt = new DataTable();
  da.Fill(dt);
  GridView2.DataSource = dt;
  GridView2.DataBind();
  this.GridView2.DataKeyNames = new string[] { "TNO" };
Html代码
  <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
  onrowediting="GridView2_RowEditing" onrowupdating="GridView2_RowUpdating" 
  Width="586px" onrowcancelingedit="GridView2_RowCancelingEdit" 
  onrowdeleting="GridView2_RowDeleting">
  <Columns>
  <asp:BoundField HeaderText="教师ID" DataField="TNO"/>
  <asp:BoundField HeaderText="教师姓名" DataField="TNAME"/>
  <asp:BoundField HeaderText="性别" DataField="TSEX" />
  <asp:BoundField HeaderText="生日" DataField="TBIRTHDAY" />
  <asp:BoundField HeaderText="职称" DataField="PROF" />
  <asp:BoundField HeaderText="所属系部" DataField="DEPART" />
  <asp:CommandField ShowEditButton="True" />
  <asp:CommandField ShowDeleteButton="True" />
  </Columns>
  </asp:GridView>
后台代码
  protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
  {
   
  string TID = GridView2.DataKeys[e.RowIndex].Value.ToString();
  string tName = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
  string sex = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString();
  string birthday = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
  DateTime dt =Convert.ToDateTime(birthday);
  string status = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString();
  string depart = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString();
  string sql = "update teacher set Tname='"+tName.Trim()+"',tsex='"+sex.Trim()+"',tbirthday='"+DateTime.Now+"',prof='"+status.Trim()+"',depart='"+depart.Trim()+"' where TNO='"+TID+"'";
  SqlCommand cmd = new SqlCommand(sql,conn);
  conn.Open();
   
  cmd.ExecuteNonQuery();
   
   
  Response.Write("修改成功!");
  conn.Close();
  cmd.Dispose();
  GridView2.EditIndex = -1;
  Bonding();



  }
  public void Bonding()
  {
  SqlCommand cmd = new SqlCommand("select * from Teacher", conn);
  SqlDataAdapter da = new SqlDataAdapter(cmd);
  DataTable dt = new DataTable();
  DataSet ds = new DataSet();
  da.Fill(dt);
  GridView2.DataSource = dt;
  GridView2.DataBind();
  this.GridView2.DataKeyNames = new string[] { "TNO" };
 
  }
在执行更新的时候没有报错,但是只能获得TID和dt
其他的Tname,sex等都不能获得,不知是什么原因
试过网上的方法改成
GridView2.Rows[e.RowIndex]["字段"].toString()


GridView2.Ros[e.RowIndex].cell[1].Text.toString()都不行
请大家帮忙

[解决办法]
可以看例子
http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.gridview.rowupdating.aspx
[解决办法]
string serialno =((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.Trim() ;
[解决办法]
没有问题
[解决办法]

你试试这种写法 我举一个TextBox为例子 看能不能成功!!

C# code
 TextBox pbTxtBox = (TextBox)gvWageBase.Rows[e.RowIndex].FindControl("TxtPayment");        string PaymentBase = pbTxtBox.Text; string SQL = "update [Crm_WagePaymentBase] set[PaymentBase]='" + PaymentBase + "', [PensionBase]='" + Pension + "', [FertilityBase]='" + Fertility + "', [MedicalBase]='" + Medical + "' where BaseID='" + BaseID + "'"; 

热点排行