为什么我把datagrid里的列转换为模版列之后,在更新数据的时候说指定的转换无效呢!~

解决方案 »

  1.   

    在模板中找不到,需要findcontrol
      

  2.   

    findcontrol怎么写啊`!我是菜鸟请贴一下好吗?
      

  3.   

    好的  
    string content,deep,A,B,C,D,answer;
    int id;
    id = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
    content = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
    deep = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
    A = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
    B = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
    C = ((TextBox)e.Item.Cells[6].Controls[0]).Text;
    D = ((TextBox)e.Item.Cells[7].Controls[0]).Text;
    answer = ((TextBox)e.Item.Cells[8].Controls[0]).Text;
    SqlConnection conn;
    SqlCommand cmd; conn = new SqlConnection(ConfigurationSettings.AppSettings["constring"]);
    conn.Open(); cmd = new SqlCommand("update danxuan set content=@content,deep=@deep,choose_A=A,choose_B=B,choose_C=C,choose_D=D,answer=@answer where id=@id",conn);
    cmd.Parameters.Add("@id",id);
    cmd.Parameters.Add("@content",content);
    cmd.Parameters.Add("@deep",deep);
    cmd.Parameters.Add("@A",A);
    cmd.Parameters.Add("@B",B);
    cmd.Parameters.Add("@C",C);
    cmd.Parameters.Add("@D",D);
    cmd.Parameters.Add("@answer",answer);
    cmd.ExecuteNonQuery(); conn.Close(); DataGrid1.EditItemIndex = -1;
    data();
      

  4.   

    你的SQL语句update danxuan set content=@content,deep=@deep,choose_A=A,choose_B=B,choose_C=C,choose_D=D,answer=@answer where id=@id
    这样也行?应该是:
    update danxuan set content=@content,deep=@deep,choose_A=@A,choose_B=@B,choose_C=@C,choose_D=@D,answer=@answer where id=@id
      

  5.   

    但是还是不可以啊`1
    指定的转换无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 
    int id;
    id = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
    content = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
    deep = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
    A = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
     
      

  6.   

    你是对数据行进行操作吧?
    那你在你那把这个加上试试看:
    if(e.Item.ItemType==ListItemType.AlternatingItem || e.Item.ItemType==ListItemType.Item)
    {
        ……你的那一大段代码!
    }
      

  7.   

    那你看一下,你的Page_Load的数据库绑定代码中,有没有
    if(!IsPostBack)
    {
    }
      

  8.   

    这样吧,你把你的SQL语句中的其中一个值,写成固定的,看看到底是没走那段代码啊?还是更新时数据还是原来的?(如果你的数据很重要,建议先备份一份)
    例如:
    update danxuan set content='测试',deep=@deep,choose_A=@A,choose_B=@B,choose_C=@C,choose_D=@D,answer=@answer where id=1
      

  9.   

    希望如此.我明天正好要做datagrid的删除和更新
    借此学习一下!
      

  10.   

    update danxuan set content='测试',deep=@deep,choose_A=@A,choose_B=@B,choose_C=@C,choose_D=@D,answer=@answer where id=1
    先将你的SQL换成这个,测试一下,看看是不是走了代码
      

  11.   

    这样吧,你把你现在的情况和你想要达到的理想的目标,详细的说一下~~~~
    我肯定能帮你解决的,别的不敢说,DataGrid还是没问题的,呵呵。
      

  12.   

    就是想在datagrid更新数据的时候,单行文本框变成多行文本框,再有一个dropdownlist。。
    你们有QQ或是MSN吗?我加你们好吗?不能贴图很是郁闷~!
      

  13.   

    我的QQ:106859199    MSN : [email protected]   不好意思刚刚忘记留下QQ和MSN了~!~  =_=
      

  14.   

    你更新之后,DataGrid有没有重新进行帮定呢?