SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["YxConnection"].ToString().Trim());
            SqlCommand comm = new SqlCommand("update t_SendInfoList_Worker_Suc set jieguo=@nid where nid=@id", conn);            SqlParameter parm1 = new SqlParameter("@nid", SqlDbType.Int);
            parm1.Value = ((DropDownList)e.Item.FindControl("dep_jieguo")).SelectedValue;
            SqlParameter parm2 = new SqlParameter("@id", SqlDbType.Int);
            parm2.Value = this.DataGrid1.DataKeys[e.Item.ItemIndex];
          
            comm.Parameters.Add(parm1);
            comm.Parameters.Add(parm2);
            conn.Open();
            comm.ExecuteNonQuery();
            conn.Close();

解决方案 »

  1.   

    parm1.Value = Convert.Int32(((DropDownList)e.Item.FindControl("dep_jieguo")).SelectedValue);
      

  2.   

    如果参数是Int32,而参数值不是有效的整型肯定不行的......
      

  3.   

    param1.Value = Int32.Parse(((DropDownList)e.Item.FindControl("dep_jieguo")).SelectedValue.ToString()); param2.Value = Int32.Parse(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString()); 
      

  4.   

    我表中的NID是biginit,jieguo是INt类型的!
      

  5.   

    通常这种转换,建议不要直接使用parse或者convert来,应该使用int.tryparse方法,或者try{}catch{}你应该捕获下错误,到底是什么错误,是该字段值已经超出了int32的表示范围还是包含有无效字符?
      

  6.   

    SqlParameter parm1 = new SqlParameter("@nid", SqlDbType.String);
      

  7.   

    jieguo=@nid 而@nid 不是int型的,所以出错。
      

  8.   

    ((DropDownList)e.Item.FindControl("dep_jieguo")).SelectedValue 这个不一定是整数,可能是null值;
    检查一下,你SelectedValue 绑定的是个什么类型的字段。
      

  9.   

    parm1.Value = Convert.ToInt32(((DropDownList)e.Item.FindControl("dep_jieguo")).SelectedValue);