在下在做程序是使用编辑列更新数据,要取出项目的主键和数据项,请看代码:
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string ID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//这句是取出编辑项的主键,没问题
string Price=((TextBox)(e.Item.Cells[2].Controls[0])).Text;//这句出错,因为我在数据库中的Price列(价格)为float类型,而TextBox.Text为string类型,我该怎样写才能将该项取出呢?
......以下略
}出错信息:指定的转换无效(上面出错那句),因为我在数据库中的Price列为float类型,而TextBox.Text为string类型,我该怎样写才能将该价格项取出呢?

解决方案 »

  1.   

    可能是e.Item.Cells[2].Controls[0]不是TextBox或不存在控件。不应该是因为Float类型的问题。
      

  2.   


    string   Price=((TextBox)e.Item.Cells[2].Controls[0]).Text;
      

  3.   

    应该是 e.Item.Cells[2].Controls[0] 不能转换为TextBox
      

  4.   

    找到问题了,因为我e.Item.Cells[2].Controls[0]中控件是Label控件,e.Item.Cells[2].Controls[1]才是TextBox控件...多谢各位指教