2013-11-05 127 views
0

我知道你們會發現這個很簡單,但是誰能告訴我爲什麼我會在無數網站上按照每條指令進行語法錯誤?數據庫更新不起作用

我的全部代碼:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" 
    dbSource = "Data Source = F:\Brett\Programming Projects\Roster\Roster.mdb" 

    con.ConnectionString = dbProvider & dbSource 
    con.Open() 
    ' This is grabbing all the records from the listing table in the Roster Database 
    sql = "Select * FROM Listing" 
    ' Or selected columns 
    'sql = "SELECT Listing.FName, Listing.LName FROM Listing" 
    da = New OleDb.OleDbDataAdapter(sql, con) 

    ' Populate the dataset with the data adaptor. This can be any name 
    da.Fill(ds, "Roster") 
    con.Close() 

    MaxRows = ds.Tables("Roster").Rows.Count 
    inc = -1 

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(da) 
    Dim iRow As Integer = Me.Label1.Text 
    Dim junk As Integer 

    ds.Tables("Roster").Rows(iRow).Item(5) = Me.TextBox3.Text 
    ds.Tables("Roster").Rows(iRow).Item(6) = Me.TextBox4.Text 
    ds.Tables("Roster").Rows(iRow).Item(8) = Me.TextBox5.Text 

    da.Update(ds, "Roster") 

    'da.Update(ds) 

End Sub 

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 
    Dim newtbl As DataTable 
    Dim cb As New OleDb.OleDbCommandBuilder(da) 
    Dim cmd As New OleDb.OleDbCommand 

    newtbl = ds.Tables("Roster") 

    Dim drCurrent As DataRow 
    drCurrent = newtbl.NewRow() 

    drCurrent(1) = "sfd" 
    drCurrent(2) = "werter" 

    newtbl.Rows.Add(drCurrent) 

    da.Update(ds, "Roster") 

End Sub 

不管我做什麼,我得到這個錯誤信息。任何幫助將不勝感激,因爲這是兩天了...

我會告訴你我的錯誤,但像往常一樣,一些花生不會讓我沒有一些廢話..它指出OleDbException是未處理,語法錯誤在Insert Into語句。

+0

哪條線是拋出的錯誤? Roster表的結構是什麼?在btn_Add_Click()中索引1和2對應哪些列? – Keith

回答

0

你可以嘗試在try-catch塊中包裝數據庫調用,並檢查返回異常的InnerXml嗎?

這可能會爲您提供有關您遇到的錯誤的更多信息。