无法从数据表导入或添加行

本文关键字:添加行 导入 数据表 | 更新日期: 2023-09-27 18:36:37

我正在尝试将从数据库获取的行添加到数据表中。
首先我尝试使用bucketdt.Rows.Add(r);我收到一个错误,说行属于另一个表
然后我用了bucketdt.ImportRow(r);然后它根本不复制该行!

if (HttpContext.Current.User.Identity.IsAuthenticated)
    {
        //DataTable f = new DataTable();
        dosObject = new DataOperations();
        bucketdt = new DataTable();
        count=0;
        foreach (string key in Session.Keys)
        {
            string val = Session[key].ToString();
            DataRow r = bucketdt.NewRow();
            r = dosObject.SubCategoryDetails2(Convert.ToInt16(val)).Rows[0];
            bucketdt.ImportRow(r);
            bucketdt.AcceptChanges();
        }
        GridView1.Enabled = true;
        GridView1.DataSource = bucketdt;
        GridView1.DataBind();
    }
    else
        Response.Redirect(FormsAuthentication.LoginUrl);

我错过了什么吗?

现在我尝试按照@wonko79

 DataTable f = new DataTable();
        dosObject = new DataOperations();
        bucketdt = new DataTable();
        count=0;
        foreach (string key in Session.Keys)
        {
            string val = Session[key].ToString();
            DataRow r = bucketdt.NewRow();
            f = dosObject.SubCategoryDetails2(Convert.ToInt16(val));
            r["Id"]=f.Rows[0].ItemArray[0].ToString();
            r["SubCategoryName"] = f.Rows[0].ItemArray[1].ToString();
            r["Make"] = f.Rows[0].ItemArray[2].ToString();
            r["Cost"] = f.Rows[0].ItemArray[3].ToString();
            //bucketdt.ImportRow(r);
            bucketdt.Rows.Add(r);
            bucketdt.AcceptChanges();

n 现在它说该行不包含列:"Id"不属于表 。

无法从数据表导入或添加行

您正在覆盖遵循 bucketdt 架构的 DataRow r,而 DataRow 包含另一个架构。

DataRow r = bucketdt.NewRow();
        r = dosObject.SubCategoryDetails2(Convert.ToInt16(val)).Rows[0]; // overwrites r with a DataRow following another schema