C# 如何将多个数据集添加到单个数据表中?

C# 如何将多个数据集添加到单个数据表中?,c#,datatable,dataset,C#,Datatable,Dataset,我有下面的代码,其中我正在基于对Oracle mdb的查询创建一个数据集 我希望将突出显示的代码放在循环中,然后将dataset对象添加到循环外的公共datatable中 我需要使用datatable.Merge()吗?“n”数据集中的结果集需要合并到单个数据表中,因此我不确定合并是否正确 如何实现这一点 谢谢假设您正在为Oracle mdb的每个查询创建一个新的“sqlstr”?如果是这样的话,您可以创建一个列表,将所有sqlstr放入其中,然后使用for循环循环,如下所示: List&l

我有下面的代码,其中我正在基于对Oracle mdb的查询创建一个数据集

我希望将突出显示的代码放在循环中,然后将dataset对象添加到循环外的公共datatable中

我需要使用datatable.Merge()吗?“n”数据集中的结果集需要合并到单个数据表中,因此我不确定合并是否正确

如何实现这一点


谢谢

假设您正在为Oracle mdb的每个查询创建一个新的“sqlstr”?如果是这样的话,您可以创建一个列表,将所有sqlstr放入其中,然后使用for循环循环,如下所示:

List<string> sqlstrings = new List<string>();

//add your sqlstr's here

DataSet dataset = new DataSet();

for(int i = 0; i < sqlstrings.count; i++)
{
    OracleDataAdapter adapter = new OracleDataAdapter(sqlstrings[i].ToString(), conn);
    OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

    adapter.Fill(dataset.Tables[i]);
}

注意:这是未经测试的代码。它只是给你一个想法和一些可以玩的东西

DataSet是DataTable对象的容器,而不是反过来。DataAdapters可以填充DataTable对象,看起来您实际上并不需要dataset
List<string> sqlstrings = new List<string>();

//add your sqlstr's here

DataSet dataset = new DataSet();

for(int i = 0; i < sqlstrings.count; i++)
{
    OracleDataAdapter adapter = new OracleDataAdapter(sqlstrings[i].ToString(), conn);
    OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

    adapter.Fill(dataset.Tables[i]);
}
if(i > 0)
{
    dtBigTable.Merge(dataset.Tables[i]);
}
else
{
    //First table
    dtBigTables = dataset.Tables[0]
}