重新发贴DataGrid的问题。
如何在点击编辑按钮时把想要的行的值保存到一个变量里?   
 就是在UpdateCommand   事件   去更新数据到数据库   要提交一条SQL语句     
 string   updatestr= " "; 
 updatestr+= "pettype= ' "+((TextBox)e.Item.Cells[2].Controls[0]).Text+ " ' "; 
 updatestr+= ",petname= ' "+((TextBox)e.Item.Cells[3].Controls[0]).Text+ " ' "; 
 updatestr+= ",petage= ' "+((TextBox)e.Item.Cells[4].Controls[0]).Text+ " ' ";     
 提交一个SQL语句 
 update   petinformation   set    "+updatestr+ "where   petname= ' "+tempetname+ " '   and   petage= ' "+tempetage+ " ' ";   
 其中   tempetname   和tempetage   要要回原来的值才可以在数据库中查询到那条记录啊。 
 ((TextBox)e.Item.Cells[2].Controls[0]).Text      这个已经是在   DataGrid1   控件上的新值了。所以不可能 
 update   petinformation   set    "+updatestr+ "where   petname= ' "+((TextBox)e.Item.Cells[2].Controls[0]).Text      + " ' "……那样去找啊     
 =============如何在点击编辑按钮时把想要的行的值保存到一个变量里?   
 private   void   DataGrid1_EditCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e) 
 {   
 DataGrid1.EditItemIndex=e.Item.ItemIndex;     
 tempetname=((TextBox)e.Item.Cells[2].Controls[0]).Text;   
 }   
 为什么说 
 指定的参数超出范围呢? 
 参数名:index 
------解决方案--------------------你去更新的条件不对,应该是根据主键更新   
 正规做法是在绑定DataGrid的时候设置DataKeyField属性为你的表的主键   
 然后更新的时候通过DataGrid1.DataKeys[e.Item.ItemIndex].ToString()得到你的主键值   
 给段参考代码   
 private void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e) 
 { 
 	SqlConnection cn = new SqlConnection( connectionString); 
 	string strUpdate =  "update aa set bb=1 set id=@id "; 
 	SqlCommand cmd = new SqlCommand(strUpdate, cn ); 
 	//记得在前台设置DataGrid的DataKeyField为aa表的主键字段 
 	cmd.Parameters.Add( "@id ", SqlDbType.VarChar).Value = DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); 
 	cn.Open(); 
 	cmd.ExecuteNonQuery(); 
 	cn.Close(); 
 	DataGrid1.EditItemIndex = -1; 
 	BindDataGrid(); //这个是重新邦定DataGrid的方法   
 }