2016-05-25 14 views
0

Accessデータベースに新しいレコードを追加しようとしています。私はVisual Basicを初めて使っていますが、これに対する答えを探しています。ここに私のコードは、これまでです:Accessデータベースへのデータの追加エラー

Dim ID As Integer = CInt(IDBox.Text) 
    Dim password As Integer = CInt(PasswordBox.Text) 
    Dim first As String = FirstName.Text 
    Dim last As String = LastName.Text 
    Dim access As Integer = CInt(AccessLevel.Text) 

    Dim conn As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Tristan\Documents\Visual Studio 2015\Projects\Keno\Keno\Users.accdb") 
    conn.Open() 
    Dim ds As New DataSet 
    Dim da As OleDb.OleDbDataAdapter 
    da = New OleDb.OleDbDataAdapter("SELECT * FROM Users", conn) 
    da.Fill(ds, "Users") 
    Dim cb As New OleDbCommandBuilder(da) 
    Dim dsNewRow As DataRow 

    dsNewRow = ds.Tables("Users").NewRow() 
    dsNewRow.Item("ID") = ID 
    dsNewRow.Item("First_Name") = first 
    dsNewRow.Item("Last_Name") = last 
    dsNewRow.Item("Password") = password 
    dsNewRow.Item("Access_Level") = access 

    ds.Tables("Users").Rows.Add(dsNewRow) 
    cb.GetInsertCommand() 
    da.Update(ds, "Users") 
    conn.Close() 

    MsgBox("User added successfully!") 

実行これは、エラーを取得します。

An unhandled exception of type System.Data.OleDb.OleDbException occurred in System.Data.dll

Additional information: Syntax error in INSERT INTO statement.

すべてのヘルプは歓迎です!

+0

なぜPWテキストボックスをIntに変換していますか? PWを平文で保存することは決して避けてください。ハッシュしてください。 – Plutonix

+0

これは、パスワードがどのように処理されるべきかは通常はわかりませんが、セキュリティは本当に懸念されていません。私は、このソフトウェアを実行しているすべてのマシンを管理します。この「パスワード」は基本的な暗証番号に過ぎず、誰も誤ってソフトウェアを使用することはできません。 – Tristan

答えて

0

ほとんどの場合、カラム名として使用した「パスワード」は予約語です。予約語であるか、特殊文字を含むSQLコードで使用される識別子。スペースは、エスケープする必要があります。コマンドビルダーはデフォルトでそれを行いません。そのためにはQuotePrefixQuoteSuffixのプロパティを自分で設定する必要があります。 Accessデータベースの場合、それぞれプロパティ値として "["と "]"を使用します。

+0

私のコードに関連して例を挙げてください。私は初心者であり、あなたが言及したプロパティをどのように設定し、カラム名として "パスワード"を使用するかを確かめていません。 – Tristan

+0

プロパティを設定する方法を調べるのにどのような努力をしましたか?プログラミングに関しては初心者かもしれませんが、以前はウェブと検索エンジンを使っていたと思います。それとは別に、あなたはすでにプロパティを設定する方法を知っています。 – jmcilhinney

関連する問題