2013-11-05 128 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吗?

这可能会为您提供有关您遇到的错误的更多信息。