我有一个从数据库填充的数据集:
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。
答案 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循环中,您可以复制剩余的列数据