MyAadpter.Fill(ds_t,"dt");...DataRow dr=ds.Tables["plan_criterion"].NewRow();这里应该
DataRow dr=ds.Tables["dt"].NewRow();

解决方案 »

  1.   

    DataRow dr=ds.Tables[0].NewRow();
    这样简单
      

  2.   

    protected System.Web.UI.WebControls.DataGrid grid;
    private DataSet dsCustomers;

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    Session.Remove("dsCustomers");
    BindData();
    }
    }
    private DataSet CreateDataSet()
    {
    estate.Components.CustomerDB customer = new estate.Components.CustomerDB();
    DataSet ds = new DataSet();
    ds = customer.GetCustomers(); DataTable dt = ds.Tables["Customers"];
    dt.Columns.Add("RowID",Type.GetType("System.Int32"));
    dt.AcceptChanges(); return ds;
    } private void BindData()
    {
    GetDataSource(); // 绑定数据
    grid.DataSource = dsCustomers;
    grid.DataBind();
    } // 获得数据源
    private void GetDataSource()
    {
    if(Session["dsCustomers"] != null)
    {
    dsCustomers = (DataSet)Session["dsCustomers"];
    }
    else
    {
    dsCustomers = CreateDataSet();
    Session["dsCustomers"] = dsCustomers;
    } RenumberRowsForPaging(ref dsCustomers);
    } // 对分页进行行的重新编号
    private void RenumberRowsForPaging(ref DataSet ds)
    {
    dsCustomers.Tables["Customers"].DefaultView.RowFilter = "";
    DataView dv = ds.Tables["Customers"].DefaultView; int i = 1;
    foreach(DataRowView drwv in dv)
    {
    drwv["RowID"] = i;
    i += 1;
    }
    } protected bool IsLastPage()
    {
    if (grid.CurrentPageIndex+1 == grid.PageCount)
    return true;
    return false;
    } private void grid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ListItemType lit = e.Item.ItemType;
    if (lit == ListItemType.EditItem)
    {
    // DataRowView drv = (DataRowView) e.Item.DataItem;
    //
    // DropDownList ddTitles = (DropDownList) e.Item.FindControl("ddTitles");
    // if (drv != null)
    // ddTitles.SelectedIndex = Array.IndexOf(aTitleOfCourtesy, drv["titleofcourtesy"].ToString());
    } if (lit == ListItemType.Pager) 
    {
    TableCell pager = (TableCell) e.Item.Controls[0]; for (int i=0; i<pager.Controls.Count; i+=2) 
    {
    Object o = pager.Controls[i];
    if (o is LinkButton) 
    {
    LinkButton h = (LinkButton) o;
    h.Text = "[ " + h.Text + " ]"; 
    }
    else
    {
    Label l = (Label) o;
    l.Text = "<font color=red><b>第 " + l.Text + " 页</b></font>"; 
    }
    }
    }
    } private void grid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    grid.CurrentPageIndex = e.NewPageIndex; BindData();
    } private void grid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName == "addNewRow")
    {
    // 获取dataset
    DataSet ds = (DataSet) Session["dsCustomers"];
    DataTable dt = ds.Tables["Customers"]; // 添加一个空行
    DataRow dr = dt.NewRow();
    dt.Rows.Add(dr); // 如果需要,可在此为一些列付默认值
    // dr["column_name"] = ...
    // Update the in-memory dataset
    Session["dsCustomers"] = ds; int nNewItemIndex = grid.Items.Count; if (nNewItemIndex >= grid.PageSize)
    {
    grid.CurrentPageIndex ++;
    nNewItemIndex = 0;
    } grid.EditItemIndex = nNewItemIndex; BindData();
    }
    } private void grid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    grid.EditItemIndex = e.Item.ItemIndex; BindData();
    } private void grid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    grid.EditItemIndex = -1; DataSet ds = (DataSet) Session["dsCustomers"];
    DataTable dt = ds.Tables["Customers"];

    DataRow drLast = dt.Rows[dt.Rows.Count-1]; if (drLast.RowState == DataRowState.Added)
    {
    drLast.RejectChanges();
    if (grid.Items.Count == 1)
    grid.CurrentPageIndex--;
    }

    BindData();
    }
    }