private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string ID = e.Item.Cells[1].Text;
string Title = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
string Content = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
this.sqlDataAdapter1.Fill(dataSet11);+++++++++++++++++++++++++++++++++++++++++++++++++++++++
DataSet1.t_guestbook_mainRow dr = dataSet11.t_guestbook_main.FindByID(ID); '这句语句我是参照微软视频上做的,为什么就是不行
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
dr.title = Title;
dr.content = Content;
this.sqlDataAdapter1.Update(dataSet11);
dataSet11.AcceptChanges();
this.DataGrid1.EditItemIndex = -1;
this.DataGrid1.DataBind();
}

解决方案 »

  1.   

    用强制转换
    Convert.ToInt16(ID)
      

  2.   

    DataSet1.t_guestbook_mainRow dr = dataSet11.t_guestbook_main.FindByID(int.Parse(ID));
      

  3.   

    因为dataSet11.t_guestbook_main.FindByID(ID);
    此处FindByID要求传入的数据类型是int型的,而你上面定义的ID显然是string型的,所以必须要转换。
    把此句改成。
    dataSet11.t_guestbook_main.FindByID(int.Parse(ID));

    dataSet11.t_guestbook_main.FindByID(Convert.ToInt16(ID));
    即可。
      

  4.   

    C# 不支持 从 STRING 到 INT 的隐式转换
      

  5.   

    我试了大家的方法,可是又出现了新的错误:异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
    行 188: private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    行 189: {
    行 190: int Id = Convert.ToInt16(e.Item.Cells[0].Text);
    行 191: string Title = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
    行 192: string Content = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
     
      

  6.   

    用int.Parse(ID)准行的,我试过!哈哈!
      

  7.   

    ok,好了,原来要改成string Id=((TextBox)e.Item.Cells[1].Controls[0]).Text;
    都是那个微软视频的错