0

データベースから取得した行を DataTable に追加しようとしています。
最初に使用してみました行が別のテーブルに属して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' は table に属していません。

4

1 に答える 1