0

まず、私はすでにインターウェブを精査して解決策を見つけましたが、まったく正しいものはないようです.

データベースからの情報を表示する DataGrid があります。データグリッドとデータベースにレコードを追加しようとしています。以下のコードは、これまでのところ「追加」ボタン用のものです。

Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database")
    Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr)
    Dim dt As New DataTable
    Dim ds As New DataSet

    Try

        dt.Rows.Add(New String() {
                                            boxAssignTo.Text, _
                                            boxState.Text, _
                                            boxCounty.Text, _
                                            boxAmount.Text, _
                                            boxType.Text, _
                                            boxRank.Text})


    Catch ex As Exception
    Finally
        dbConnection.Close()
    End Try

現在、「入力配列がこのテーブルの列数よりも長くなっています」というエラーが発生しています。このプロセス中に表示されます。データベースのテーブルに、追加していない自動生成された ID フィールドがあるためだと推測しました。しかし、これを追加する方法がわかりません。

これが問題かどうかはわかりませんが、DataGrid を表示すると、

DataGridView1.Columns.Remove("ID")

そのため、ID フィールドが物理的に表示されません (この winForm では意味がありません)。

優しくしてください。私はデータベースと VB に非常に慣れていません。

4

1 に答える 1

1

このエラーが発生する理由は、列を追加していないためです。

    Try
        dt.Columns.Add("a")
        dt.Columns.Add("b")
        dt.Columns.Add("c")
        dt.Columns.Add("d")
        dt.Columns.Add("e")
        dt.Columns.Add("f")

        dt.Rows.Add(New String() {"1","2","3","4","5","6"})


    Catch ex As Exception
    Finally

    End Try
于 2013-03-07T19:28:07.253 に答える