public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
    {
        String updateCmd = "UPDATE farelist SET farenumber = @fnumber, shopname = @sname, farekind = @fk, fare = @fr, writeman = @wman, writedate = @wdate, re=@rm where farenumber = @fnumber";
        SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);
        myCommand.Parameters.Add(new SqlParameter("@fnumber", SqlDbType.NVarChar, 50));
myCommand.Parameters["@fnumber"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@sname", SqlDbType.NVarChar, 50));
myCommand.Parameters["@sname"].Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@fk", SqlDbType.NVarChar, 50));
myCommand.Parameters["@fk"].Value=((TextBox)e.Item.Cells[4].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@fr", SqlDbType.NVarChar, 50));
myCommand.Parameters["@fr"].Value=((TextBox)e.Item.Cells[5].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@wman", SqlDbType.NVarChar, 50));
myCommand.Parameters["@wman"].Value=((TextBox)e.Item.Cells[6].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@wdate", SqlDbType.NVarChar, 50));
myCommand.Parameters["@wdate"].Value=((TextBox)e.Item.Cells[7].Controls[0]).Text;
        myCommand.Parameters.Add(new SqlParameter("@rm", SqlDbType.NVarChar, 50));
myCommand.Parameters["@rm"].Value=((TextBox)e.Item.Cells[8].Controls[0]).Text;
       
                myCommand.Connection.Open();
        try
        {
            myCommand.ExecuteNonQuery();
            Message.InnerHtml = "<b>费用单更新成功</b><br>";
            MyDataGrid.EditItemIndex = -1;
        }
        catch (SqlException exc)
        {
            if (exc.Number == 2627)
                Message.InnerHtml = "ERROR: A record already exists with the same primary key";
            else
                Message.InnerHtml = "ERROR: Could not update record, please ensure the fields are correctly filled out";
                Message.Style["color"] = "red";
        }
        myCommand.Connection.Close();
        BindGrid();
    }

解决方案 »

  1.   

    public void binddatagrid()
    {
    //此处是gatagrid的数据绑定过程
    DataGrid1.PageSize = 5;
    DataGrid1.PagerStyle.Mode = PagerMode.NumericPages;
    string varsql = "select * from telrecord";
    myconnclass myclass =new conndbdll.myconnclass();
    string mytable="mytable";
    DataSet mydataset=myclass.DataAdapter(varsql,mytable);
    DataView mydataview = new DataView(mydataset.Tables["mytable"]);
    //mydataview.Sort = sortorder;
    DataGrid1.DataSource = mydataview;
    DataGrid1.DataBind();
    }
    public void doitemedit(object objsource,DataGridCommandEventArgs objargs)
    {
    //单击datagrid的编译按钮响应过程
    DataGrid1.EditItemIndex = objargs.Item.ItemIndex;
    binddatagrid();
    }
    public void doitemcancel(object objsource, DataGridCommandEventArgs objargs)
    {
    //单击datagrid的取消按钮响应过程
    DataGrid1.EditItemIndex = -1;
    binddatagrid();
    }
    public void doitemupdate(object objsource, DataGridCommandEventArgs e)
    {
    //单击datagrid的更新按钮响应过程
    TextBox objproductctrl = (TextBox)e.Item.FindControl("txtmethod");
    string varsql = "UPDATE telrecord SET method='" + objproductctrl.Text + "' where id=" + this.DataGrid1.DataKeys[e.Item.ItemIndex];
    myconnclass myclass =new conndbdll.myconnclass();
    int myrows=myclass.ExecuteNonQuery(varsql);
    DataGrid1.EditItemIndex = -1;
    binddatagrid();
    }