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;

ある DataSet を別の DataSet に追加したいのですが、最終的に累積された DataSet が返されます。

エラーが発生しました -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

同じ DataSet を最初のテーブルの行コレクションに追加しているので、これはタイプミスではないでしょうか。

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

私の理解が正しければ、あなたは DataSet を持っていて、ds1そのテーブルを に追加したいと考えていdsます。このためには、テーブルの複製とその行のインポートという2 つの手順でテーブルごとに移動する必要があります。

たとえば、これは最初のテーブル (インデックス 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 に答える