1

私の問題はda.Update(dt)にあります。OleDbException was unhandled を受け取りました。INSERT INTO ステートメントの構文エラーです。奇妙なことに、以前は 10 個のアイテムしか保存していなかったときに実行されていましたが、現在はまったく混乱していません。ご協力ありがとうございます。

Dim dt As New DataTable
    Dim ds As New DataSet

    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\MyComplete.accdb;Persist Security Info=False;"

    con.Open()
    MsgBox("here")
    ds.Tables.Add(dt)

    Dim da As New OleDbDataAdapter

    da = New OleDbDataAdapter("SELECT * FROM DealerReview", con)

    da.Fill(dt)


    Dim newRow As DataRow = dt.NewRow

    newRow.Item(1) = User
    newRow.Item(2) = Associate
    newRow.Item(3) = "1"
    newRow.Item(4) = Time
    newRow.Item(5) = Hold
    newRow.Item(6) = GreetingR
    newRow.Item(7) = GreetingA
    newRow.Item(8) = GreetingO
    newRow.Item(9) = GreetingTs
    newRow.Item(10) = GreetingG
    newRow.Item(11) = holdUpdate
    newRow.Item(12) = LookupSize
    newRow.Item(13) = DlyD
    newRow.Item(14) = SiPrice
    newRow.Item(15) = SiDoorPrice
    newRow.Item(16) = TBrand
    newRow.Item(17) = TModel
    newRow.Item(18) = SeveralChoices
    newRow.Item(19) = Financing
    newRow.Item(20) = Benefits
    newRow.Item(21) = Apt
    newRow.Item(22) = ITime
    newRow.Item(23) = AssociateScore
    newRow.Item(24) = hms
    newRow.Item(25) = ymd
    newRow.Item(26) = ElapsedTime


    dt.Rows.Add(newRow)
    Dim cb As New OleDbCommandBuilder(da)
    cb.GetInsertCommand()
    da.Update(dt)
    MsgBox("Saved")
    con.Close()
4

1 に答える 1

0

これは、アイテムの数やデータ型が、書き込み先のテーブルの列定義と一致しない場合に発生するエラーです。他の可能性もありますが、アイテムを追加したとのことで、テーブル定義を表示していないので、それが最も可能性が高いと思われます。

データベースコマンドに項目(列)を追加するだけでなく、読み取り/書き込み元/書き込み先のテーブル列と一致する必要があります。

于 2012-08-01T13:57:39.763 に答える