克隆数据集>更改列类型>填充数据集

时间:2013-09-11 09:54:15

标签: asp.net vb.net dataset .net-1.1 asp.net-1.1

我有一个从数据库填充的数据集:

dataset_original = new DataSet()
data_adapter.Fill(dataset_original)

我克隆了它:

dataset_cloned = dataset_original.Clone()

我克隆了它,因为原始中的1列是int类型,我想将其更改为string类型:

dataset_cloned.Tables(0).Columns("int_column_name_goes_here").DataType = GetType(String)

现在我需要使用旧数据集中的数据填充新数据集。我怎么做?

我使用的是用vb.net编码的asp.net 1.1。

2 个答案:

答案 0 :(得分:1)

这个简单的循环应该可以工作(即使使用OPTION STRICT ON):

Dim dataset_cloned = dataset_original.Clone()
dataset_cloned.Tables(0).Columns("int_column_name_goes_here").DataType = GetType(String)
For i As Int32 = 0 To dataset_original.Tables.Count - 1
    Dim tbl_original As DataTable = dataset_original.Tables(i)
    Dim tbl_cloned As DataTable = dataset_cloned.Tables(i)
    For Each row As DataRow In tbl_original.Rows
        tbl_cloned.Rows.Add(row.ItemArray)
    Next
Next

答案 1 :(得分:0)

假设数据集中只有一个表,你可以这样做。

            int ColumnIndex = 0; //Column index of your data you want to copy
            for (int i = 0; i < dataset_original.Tables[0].Rows.Count; i++)
            {
                dataset_cloned.Tables[0].Rows[i].SetField(ColumnIndex, dataset_original.Tables[0].Rows[ColumnIndex].ItemArray[0].ToString());
            }

在同一个for循环中,您可以复制剩余的列数据