你没添加参数进Command啊
this.sqlUpdateCommand1.Parameters.Add()把参数加进去

解决方案 »

  1.   

     这个参数@Original_address呢????
      

  2.   

    数据库 3个字段啊
    name varchar
    age int
    addreee varchar
      

  3.   

    字段为int肯定要转换成int啊
    提示很清晰  @Original_address=null
    你单步调试看看
      

  4.   

    this.sqlUpdateCommand1.Parameters["@age"].Value=((TextBox)e.Item.Cells[1].Controls[0]).Text; 
    在这段代码里 怎么转换成int
      

  5.   

    this.sqlUpdateCommand1.Parameters["@age"].Value=Convert.ToInt32(((TextBox)e.Item.Cells[1].Controls[0]).Text);   
      

  6.   

    this.sqlUpdateCommand1.Parameters["@age"].Value=Convert.ToInt32(((TextBox)e.Item.Cells[1].Controls[0]).Text);   
      

  7.   

    需要参数   @Original_address,但未提供该参数。
      

  8.   

    楼上的朋友一直再说提供 @Original_address的参数,可是我数据库里面没有把这个字段设为主键,
    要提供参数我该写?
    我数据库里面只有三个字段 name,age,address主键是name
      

  9.   

    private void BindGrid()
    {
    sqlDataAdapter1.Fill(dataSet11,"wo");
    this.DataGrid1.DataBind();
    }

    private void Page_Load(object sender, System.EventArgs e)
    {

    if(!Page.IsPostBack)
    {
    BindGrid();
    }
    }
    public bool aa(string age)
    {
    if(age=="16")
    {
    return true;
    }
    return false;
    }

    private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    this.Label1.Text="您选择了"+this.DataGrid1.SelectedItem.Cells[1].Text;
    } private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {   

                  this.sqlUpdateCommand1.Parameters["@Original_name"].Value=this.DataGrid1.DataKeys[(char)e.Item.ItemIndex];

    this.sqlUpdateCommand1.Parameters["@name"].Value=((TextBox)e.Item.Cells[0].Controls[0]).Text;

    this.sqlUpdateCommand1.Parameters["@age"].Value=Convert.ToInt32(((TextBox)e.Item.Cells[1].Controls[0]).Text);
    this.sqlUpdateCommand1.Parameters["@address"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
        
    try
    {
    if(this.sqlConnection1.State==ConnectionState.Closed)
    {
    this.sqlConnection1.Open();
    this.sqlDataAdapter1.UpdateCommand.ExecuteNonQuery();
    this.Label1.Text="记录已经更新";
    this.DataGrid1.EditItemIndex=-1;
    }
    this.sqlConnection1.Close();
    }
    catch(SqlException ex)
    {
    if(ex.Number==2627)
    {
    this.Label1.Text="错误存在相同的主键";
    }
    else
    {
    this.Label1.Text=ex.ToString()+"错误,无法更新记录";
    }
    }
    BindGrid();
    } private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
    BindGrid();
    } private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    this.DataGrid1.EditItemIndex=-1;
    BindGrid();
    }
    这个是我的整段代码,数据集已经配好了
      

  10.   

    实在不行,把命令里的@Original_address参数去掉算了,你这代码最好自己写,不要用自动生成的,有个问题都不好找。