在运行时将一个表中的随机行复制到另一个表中

时间:2011-05-16 02:31:53

标签: database vb.net runtime

我有一个包含两个表的数据库。一个是项目表(table1),另一个是当前项目表(table2)。 在表单加载时,我需要从table1生成随机数量的项目并用它们填充table2。我试图做这样的事情:

  While numberofitems >= 1
     Dim i As Integer

     index = myGenerator.Next(_minitem, _maxitem)

     i = _itemsListBindingSource.IndexOf(index)

     _bindingSource.Add(_itemsListBindingSource.Item(i))

     numberofitems -= 1

  End While

  Me.ItemsTableAdapter1.Fill(Me.Items2DataSet1.Items)

但那根本不起作用。任何人都可以提出任何想法吗?

1 个答案:

答案 0 :(得分:0)

尝试我的解决方案(.net 3.5)。我创建了一个带有“Table1”的类型化数据集和一个带有tableadapters的“Table2”(在另一个名为dsMain.xsd的文件中)。我用“Table1”中的数据填充我的“SourceTable”,然后根据“SourceTable”中的行数抓取随机行,并将它们放在“TargetTable”中。一旦“TargetTable”中包含我的数据,我就会使用“更新”语句将其提交到数据库。

    Dim SourceTable = (New dsMainTableAdapters.Table1TableAdapter).GetData
    Dim TargetTable As New dsMain.Table2DataTable

    Dim MyRandom As New Random()

    Const DesiredRowCount As Int32 = 20

    For i = 1 To DesiredRowCount
        Dim RandomRow = SourceTable(MyRandom.Next(0, SourceTable.Count))

        TargetTable.AddTable2Row(RandomRow(0))
    Next

    With (New dsMainTableAdapters.Table2TableAdapter)
        .Update(TargetTable) 'Save my data to the DB'
    End With