2012-04-17 75 views
1

これらの値をすべてデータベースに保存する必要があります。私のテーブルにはID(Idは自動生成)、Password、Name、Department_Name、Email_Addressの各フィールドがあります。 このコードはエラーを生成します。これは私のコード -cで情報を保存する際にエラーが発生しました

OleDbCommand cmd = new OleDbCommand(); 
cmd.CommandType = CommandType.Text; 
cmd.CommandText = @"INSERT INTO Login(Password,Name,Department_Name,Email_Address) 
        Values(@Password,@Name,@Department_Name,@Email_Address)"; 
cmd.Parameters.AddWithValue("@Password",passwordBox1.Password); 
cmd.Parameters.AddWithValue("@Name", textBox2.Text); 
cmd.Parameters.AddWithValue("@Department_Name", textBox3.Text); 
cmd.Parameters.AddWithValue("@Emial_Address", textBox4.Text); 
cmd.Connection = con; 
con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 

そしてINSERT INTO文で

構文エラーが - エラーです。

+5

ノートのこのクエリを試してみてください。パラメータ 'Emial_Address'あなたは' using'ステートメントを使用する必要があります 'Email_Address' – Reniuz

+1

であるか、または後に処分しなければなりません。 –

+0

@ Renenuz非常に良い点 –

答えて

3

それは問題になりそうではないのですが、それは試してみる価値がある:@Email_Addressが@Emial_Addressとして綴られているときにパラメータ値を設定します。

問題は、ログインとパスワードがデータベースの予約語になる可能性があることです。変更してみてください:

`cmd.CommandText = "INSERT INTO Login (Password,Name,Department_Name,Email_Address) Values (@Password,@Name,@Department_Name,@Email_Address)";` 

ツー

`cmd.CommandText = "INSERT INTO [Login] ([Password],Name,Department_Name,Email_Address) Values (@Password,@Name,@Department_Name,@Email_Address)";` 
+0

問題が解決しました!ありがとうございました! 非常に明確な説明ですが! :) – 3692

+0

いつも喜んで.. – 3692

2

"INSERT INTO [Login] ...." 

ログインがSQLキーワードで試してみて、その角括弧で囲んして動作するはずです。

Reniuzも彼のコメントでバングオンしています.Email_Addressパラメータのスペルは間違っていますが、それはエラーの原因ではありません。また

cmd.Parameters.AddWithValue("@Emial_Address", textBox4.Text); 

他のポスターが指摘したように、使用している、:あなたが使用している正確なコードを掲載した場合、あなたがメールアドレスを追加するときは、パラメータ名がスペルが間違って

1

SQLは、ログイン、クエリでキーワードを予約し、あなたは角括弧で囲む必要があります。

"INSERT INTO [Login] (..." 
-1

この試してみてください。また、接続にコマンドを参照してください

OleDbCommand cmd = new OleDbCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "INSERT INTO Login(Password,Name,Department_Name,Email_Address) Values('"+passwordBox1.Password+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')"; 
     con.Open(); 
     cmd.Connection=con; 
     cmd.ExecuteNonQuery(); 
     con.Close(); 

を、それがために実行されている接続を知っているdoesntの。

0

あなたは、コマンドテキスト

cmd.CommandText = "INSERT INTO Login(Password,Name,Department_Name,Email_Address) 
        Values('" + passwordBox1.Password + "', '" + textBox2.Text + "', '" +textBox3.Text+ "','"+textBox4.Text+"')"; 
関連する問題