0
            sqlHelper = new SqlHelper();
            sqlHelper.OpenConnection();
            int i;
            String sqlSt = string.Empty;
            for (i = 0; i < tag.Count; i++)
            {
               sqlSt = "Select TagID from TagsList where TagName= '" + tag[i] + "'";
               ds = sqlHelper.ExecuteDataSet(sqlSt, CommandType.Text);

               if (ds != null)
               {
                   if (ds.Tables[0].Rows.Count > 0)
                   {
                       //dt = ds1.Tables[0];
                       ds.Tables[0].Rows.Add(ds);
                   }
               }
             }
             return ds;

我想将一个数据集添加到另一个数据集,最后将返回累积的数据集。

我收到一个错误 -Unable to cast object of type 'System.Data.DataSet' to type 'System.IConvertible'.Couldn't store <System.Data.DataSet>

编辑:我想要的是我得到一个包含特定 int 值的数据集,我的 for 循环运行的每种类型我想将所有这些记录添加到数据集中,然后返回我的数据集

4

2 回答 2

0

从技术上讲,我们不能将一个数据集添加到其他数据集,因为 ASP.NET 中的数据集通常是只读的。

So,First We Have To Create Object Reference of Second DataSet.

Steps :

bool IsFirstTime  = true;(Create OutSide Loop)

Inside Loop :

if (IsFirstTime)

{

// dsLoopData Contains Records

dsTotalRecords = dsLoopData.Clone();

IsFirstTime = false;

}

1.At a Time Insert (For Bulk Copy)

dsTotalRecords.Tables[0].Merge(dsLoopData.Tables[0]);

2.Row By Row Insertion

for (int i = 0; i < dsLoopData.Tables[0].Rows.Count; i++)

{

dsTotalRecords.Tables[0].ImportRow(dsLoopData.Tables[0].Rows[i]);

}
于 2014-05-13T10:06:06.063 回答
0

我想知道这是否是一个错字,因为您将相同的 DataSet 添加到其第一个表的行集合中:

ds.Tables[0].Rows.Add(ds);

如果我理解正确,您有一个 DataSetds1并且您想将其表添加到ds. 为此,您需要分两步逐表移动:克隆表和导入其行

例如,这将复制第一个表(索引 0):

//clone first table
DataTable dt = ds1.Tables[0].Clone();
//add rows
foreach (DataRow dr in ds1.Tables[0].Rows)
{
    dt.ImportRow(dr);
}
//add table to DataSet
ds.Tables.Add(dt); 

编辑:我也会调查DataTableExtensions CopyToDataTable。它相信你也可以这样做(未经测试):

//copy first table
DataTable dt = ds1.Tables[0].AsEnumerable().CopyToDataTable();    
//add table to DataSet
ds.Tables.Add(dt); 
于 2013-01-16T16:41:40.287 回答