1

こんにちは、ある行を DataTable から別の行にコピーしようとしています。ほとんどどこを見ても、これが起こっている理由が見つかりません。ImportRow を使用していますが、まだ新しい DataTable は空です。

これは、私が見つけた同様の回答の1つであり、まだ機能していません!:

   Dim newTable As New DataTable
        Dim dsFrom As New DataTable

        For Each DBShoes In list
            Dim iShoeID As Integer
            iShoeID = DBShoes.sShoes_ID
            dsFrom = DBShoes.GetFullShoeDetails(iShoeID)
            For Each dr As DataRow In dsFrom.Rows
                newTable.Rows.Add(dr.ItemArray)
            Next
        Next
        GridView1.DataSource = newTable
        GridView1.DataBind()

エラー: 入力配列は、このテーブルの列数よりも長くなっています。

クラッシュしないが、DataTable に何も追加されないインポートは次のとおりです。 Dim newTable As New DataTable Dim dsFrom As New DataTable

        For Each DBShoes In list
            Dim iShoeID As Integer
            iShoeID = DBShoes.sShoes_ID
            dsFrom = DBShoes.GetFullShoeDetails(iShoeID)
            For Each dr As DataRow In dsFrom.Rows
                newTable.ImportRow(dr)
            Next
        Next
        GridView1.DataSource = newTable
        GridView1.DataBind()

    Else

ありがとう

4

1 に答える 1

4

2 つの DataGridView コントロールを含むフォームを作成しました。フォームのコードは次のとおりです。

Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    ' create table with single column
    Dim dt1 As New DataTable
    dt1.Columns.Add("Number", GetType(Integer))

    ' create another table with single column
    Dim dt2 As New DataTable
    dt2.Columns.Add("Number", GetType(Integer))

    ' fill first table with single row
    Dim r As DataRow = dt1.NewRow()
    r.Item(0) = 1
    dt1.Rows.Add(r)

    ' import all rows of first table into second table
    For Each row In dt1.Rows
        dt2.ImportRow(row)
    Next

    ' show tables
    DataGridView1.DataSource = dt1
    DataGridView2.DataSource = dt2
End Sub
End Class
于 2012-04-07T21:11:22.610 に答える