合并两个数据集时如何删除空列?

时间:2019-01-15 15:49:36

标签: c# asp.net dataset

当我合并如下所示的代码后,我合并了两个数据集ds1和ds2空列时

ds1.Merge(ds2,true,MissingSchemaAction.Add);

ds1.AcceptChanges();

这两种方法均无效。

        DataSet ds1 = new DataSet();
        DataSet ds2 = new DataSet();

        SqlDataAdapter SqlDA = new SqlDataAdapter();

        SqlDA = new SqlDataAdapter("select * from tblProductInventory", myConn);
        SqlDA.Fill(ds1, "MyTable");

        SqlDA = new SqlDataAdapter("select * from tblProductCategories", myConn);
        SqlDA.Fill(ds2, "MyTable");

        //ds1.Merge(ds2);
        ds1.Merge(ds2, true, MissingSchemaAction.Add);
        ds1.AcceptChanges();


        GridView1.DataSource = ds1.Tables[0].DefaultView;
        GridView1.DataBind();

enter image description here

1 个答案:

答案 0 :(得分:0)

由于两个数据集之间没有关系,因此需要向ds1中添加两列,如下所示:

ds1.Tables[0].Columns.Add("CategoryId", typeof(string));
ds1.Tables[0].Columns.Add("CategoryName", typeof(string));

然后您可以执行以下操作:

for (int temp = 0; temp < ds1.Tables[0].Rows.Count; temp++)
{
    ds1.Tables[0].Rows[temp]["CategoryId"] = ds2.Tables[0].Rows[temp]["CategoryId"];
    ds1.Tables[0].Rows[temp]["CategoryName"] = ds2.Tables[0].Rows[temp]["CategoryName"];
}