0

我正在尝试执行以下代码。我要做的就是将数据集中的一列复制到另一个数据集的一列中。代码如下:

    int i=0
    foreach (DataRow dr in ds_input.Tables[0].Rows)
    {
     ds_output.Tables["output"].Rows[i]["Serial_Number"] = dr["Serial Number"].ToString();
i++;
    }

dr分配to的列值时ds,编译器返回以下错误:

There is no row at position 0.

尽管进行了以下添加,但它返回相同的错误:

   int i=0;
     foreach (DataRow dr in ds_input.Tables[0].Rows)
     {
         ds_output.Tables["output"].NewRow();
         ds_output.Tables["output"].Rows[i]["Serial_Number"] = dr["Serial Number"].ToString();
     i++;}
4

1 回答 1

0

您必须DataRowDataTable. 如果输出表和输入表具有相同的列,您可以使用它DataTable.Clone来克隆不复制数据的表。然后,您可以使用从输入表DataTable.ImportRow创建副本并将其DataRow添加到输出表。或者您可以使用table.Rows.Add添加一个新的DataRow并使用ItemArray输入数据行的(所有字段):

DataSet ds_output = new DataSet();
DataTable tblOutput = ds_input.Tables[0].Clone();
ds_output.Tables.Add(tblOutput);
foreach (DataRow dr in ds_input.Tables[0].Rows)
{
    tblOutput.ImportRow(dr);
    // or:
    DataRow newRow = tblOutput.Rows.Add();
    newRow.ItemArray = dr.ItemArray;
}

如果要创建输入表的完整副本,可以使用DataTable.Copy

DataTable tblOutput = ds_input.Tables[0].Copy(); // nothing more needed
于 2013-12-03T09:36:15.917 回答