2012-04-17 141 views
1

我需要將所有這些值保存在數據庫中。我的表格包含這些字段ID(Id是自動生成的),密碼,名稱,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'應該是'Email_Address' – Reniuz 2012-04-17 07:11:58

+1

您應該使用'using'陳述或後處理。 – 2012-04-17 07:14:07

+0

@Reniuz非常好的地方 – 2012-04-17 07:14:09

回答

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 2012-04-17 07:20:52

+0

總是很高興幫助.. – 3692 2012-04-17 07:29:55

2

嘗試

"INSERT INTO [Login] ...." 

登錄是一個SQL關鍵字等並用方括號它應該工作。

而且Reniuz的評論也是如此 - Email_Address參數拼寫錯誤(但這不會導致錯誤)。

1

如果你發佈你使用確切的代碼,則該參數的名稱時,您要添加的電子郵件地址拼寫錯誤:

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

此外,作爲其他海報指出,您使用的是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(); 

也指命令的連接,它不知道它是用於執行連接。

0

你試試這個查詢命令文本

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