2011-08-03 12 views
0

私はvb.net 2010を使用しています。私のプロバイダはOLEDBです。私は作成したナビゲーションボタンを介してデータベースを経由するvb.netを使用してデータベースプログラムを作成していますが、コミットまたは更新ボタンを押すと次のエラーが表示されます。 ERRORは{INSERT INTO文の構文エラーです} {dataadapter.Update(データセット、 "GREライブラリ")}の2つのボタンの2箇所で発生します
それ以外のものはすべて私が知る限りうまく動作します。私は他の形を持っていますが、実際には重要ではなく、リンクされていません。 HEREエラー:「INSERT INTO文の構文エラー」

はMY CODE IS:

Public Class EditLibraryForm 

Dim MaxRows As Integer 
Dim inc As Integer 
Dim connection As New OleDb.OleDbConnection 
Dim databaseProvider As String 
Dim databaseSource As String 

Dim dataset As New DataSet 
Dim dataadapter As OleDb.OleDbDataAdapter 
Dim sql As String 

Private Sub EditLibraryForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    databaseProvider = "Provider=Microsoft.ACE.OLEDB.12.0;" 
    databaseSource = "Data Source = H:\Game Revolutionaries Entertainment TEST2\Game Revolutionaries Entertainment\Resource\GRE Library.accdb" 
    connection.ConnectionString = databaseProvider & databaseSource 

    connection.Open() 
    sql = "SELECT * FROM [GRE Library Logistics]" 
    dataadapter = New OleDb.OleDbDataAdapter(sql, connection) 
    dataadapter.Fill(dataset, "GRE Library") 

    connection.Close() 

    MaxRows = dataset.Tables("GRE Library").Rows.Count 
    inc = -1 

End Sub 

Private Sub NavigateRecords() 

    txtname.Text = dataset.Tables("GRE Library").Rows(inc).Item(0).ToString 
    txtrating.Text = dataset.Tables("GRE Library").Rows(inc).Item(2).ToString 
    txtgenre.Text = dataset.Tables("GRE Library").Rows(inc).Item(3).ToString 
    txtplatform.Text = dataset.Tables("GRE Library").Rows(inc).Item(4).ToString 
    txtrd.Text = dataset.Tables("GRE Library").Rows(inc).Item(5).ToString 
    txtdc.Text = dataset.Tables("GRE Library").Rows(inc).Item(6).ToString 
    txtinfo.Text = dataset.Tables("GRE Library").Rows(inc).Item(7).ToString 
    txtpn.Text = dataset.Tables("GRE Library").Rows(inc).Item(8).ToString 
    txtsupport.Text = dataset.Tables("GRE Library").Rows(inc).Item(9).ToString 
    txtnews.Text = dataset.Tables("GRE Library").Rows(inc).Item(10).ToString 


End Sub 
Private Sub btnnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnext.Click 

    If inc <> MaxRows - 1 Then 
     inc = inc + 1 
     NavigateRecords() 
    Else 
     MsgBox("No More items in Library") 
    End If 

End Sub 

Private Sub btnprevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnprevious.Click 

    If inc > 0 Then 
     inc = inc - 1 
     NavigateRecords() 
    Else 
     MsgBox("This is First item") 
    End If 

End Sub 

Private Sub btnlast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlast.Click 

    If inc <> MaxRows - 1 Then 
     inc = MaxRows - 1 
     NavigateRecords() 
    Else 
     MsgBox("Already on last item") 
    End If 

End Sub 

Private Sub btnfirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnfirst.Click 

    If inc <> 0 Then 
     inc = 0 
     NavigateRecords() 
    Else 
     MsgBox("Already on first item") 
    End If 

End Sub 

Private Sub btnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnupdate.Click 

    Dim cb As New OleDb.OleDbCommandBuilder(dataadapter) 

    txtname.Text = dataset.Tables("GRE Library").Rows(inc).Item(0).ToString 
    txtrating.Text = dataset.Tables("GRE Library").Rows(inc).Item(2).ToString 
    txtgenre.Text = dataset.Tables("GRE Library").Rows(inc).Item(3).ToString 
    txtplatform.Text = dataset.Tables("GRE Library").Rows(inc).Item(4).ToString 
    txtrd.Text = dataset.Tables("GRE Library").Rows(inc).Item(5).ToString 
    txtdc.Text = dataset.Tables("GRE Library").Rows(inc).Item(6).ToString 
    txtinfo.Text = dataset.Tables("GRE Library").Rows(inc).Item(7).ToString 
    txtpn.Text = dataset.Tables("GRE Library").Rows(inc).Item(8).ToString 
    txtsupport.Text = dataset.Tables("GRE Library").Rows(inc).Item(9).ToString 
    txtnews.Text = dataset.Tables("GRE Library").Rows(inc).Item(10).ToString 



    dataset.Tables("GRE Library").Rows(inc).Item(0) = txtname.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(2) = txtrating.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(3) = txtgenre.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(4) = txtplatform.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(5) = txtrd.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(6) = txtdc.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(7) = txtinfo.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(8) = txtpn.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(9) = txtsupport.Text 
    dataset.Tables("GRE Library").Rows(inc).Item(10) = txtnews.Text 


    dataadapter.Update(dataset, "GRE Library") 
    MsgBox("Library updated") 

End Sub 

Private Sub btnaddnew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaddnew.Click 

    btncommit.Enabled = True 
    btnaddnew.Enabled = False 
    btnupdate.Enabled = False 
    btndelete.Enabled = False 

    txtname.Clear() 
    txtrating.Clear() 
    txtgenre.Clear() 
    txtplatform.Clear() 
    txtrd.Clear() 
    txtdc.Clear() 
    txtinfo.Clear() 
    txtpn.Clear() 
    txtsupport.Clear() 
    txtnews.Clear() 

End Sub 

Private Sub btnclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnclear.Click 

    btncommit.Enabled = False 
    btnaddnew.Enabled = True 
    btnupdate.Enabled = True 
    btndelete.Enabled = True 

    inc = 0 
    NavigateRecords() 

End Sub 

Private Sub btncommit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncommit.Click 

    If inc <> -1 Then 

     Dim cb As New OleDb.OleDbCommandBuilder(dataadapter) 
     Dim datasetNewRow As DataRow 

     datasetNewRow = dataset.Tables("GRE Library").NewRow() 

     datasetNewRow.Item("Name") = txtname.Text 
     datasetNewRow.Item("PersonelRating") = txtrating.Text 
     datasetNewRow.Item("Genre") = txtgenre.Text 
     datasetNewRow.Item("Platform") = txtplatform.Text 
     datasetNewRow.Item("ReleaseDate") = txtrd.Text 
     datasetNewRow.Item("DevelopingCompany") = txtdc.Text 
     datasetNewRow.Item("GameInformation") = txtinfo.Text 
     datasetNewRow.Item("PersonalNotes") = txtpn.Text 
     datasetNewRow.Item("Support") = txtsupport.Text 
     datasetNewRow.Item("News") = txtnews.Text 


     dataset.Tables("GRE Library").Rows.Add(datasetNewRow) 

     dataadapter.Update(dataset, "GRE Library") 

     MsgBox("New item has been added to the library") 

     btncommit.Enabled = False 
     btnaddnew.Enabled = True 
     btnupdate.Enabled = True 
     btndelete.Enabled = True 

    End If 

End Sub 

Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click 


    Dim cb As New OleDb.OleDbCommandBuilder(dataadapter) 
    dataset.Tables("GRE Library").Rows(inc).Delete() 
    MaxRows = MaxRows - 1 

    inc = 0 
    NavigateRecords() 
    dataadapter.Update(dataset, "GRE Library") 

End Sub 
+0

commandBuilderで作成したinsert文を投稿できますか? – Muse

答えて

2

あなたはあなたがそこにあるかもしれないものの問題を判断できるように、ビルダーがあなたのために作成されたものを取得して画面に表示する.GetInsertCommand().CommandText方法&プロパティを使用することもできますあなたの方法で。

+0

あなたの返事を感謝してくれてありがとう、私はそれが私にエラーを与えていた理由を見つけることができました。その理由は、私のデータベースには私の画像に使用していたOLEオブジェクトフィールドがあるからです。私はそれを削除した後、プログラムはうまくいったので、私はデータを追加しようとしているwhneを推測しています、それは特定のフィールドと競合しています。しかし、問題は私がそのフィールドを必要としている、とにかく私はまだ維持することができる – Warchi

+0

@ワルキー:それは素晴らしいです.. – Muse

関連する問題