2017-04-25 101 views
2

我想在我的MS Access數據庫中自動插入數字。在MS Access中使用C#插入自動編號

目前,我有一個分貝,看起來像:

| id | username | password | name | email | 

其中id是自動遞增。

而且我有這樣的代碼:

cmd.Parameters.AddWithValue("@userName", tbUname.Text.Trim()); 
cmd.Parameters.AddWithValue("@password", tbPass.Text.Trim()); 
cmd.Parameters.AddWithValue("@Name", tbName.Text.Trim()); 
cmd.Parameters.AddWithValue("@Email", tbEmail.Text.Trim()); 
string sql = "insert into users " + 
      "values('',@userName, @password, @Name, @Email)"; 

我也試着這樣做:

INSERT INTO users (username,password,name,email) VALUES (@userName,@password, @Name, @Email) 

當u運行此查詢我得到的錯誤是:

System.Data .OleDb.OleDbException:INSERT INTO語句中的語法錯誤。在System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult小時)在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult在System.Data.OleDb.OleDbCommand.ExecuteCommandText(對象&的ExecuteReuslt)在系統(tagDBPARAMS dbParams,對象&的ExecuteReuslt)。 Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior行爲,對象& executeResult)在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior行爲,String方法)System.Data.OleDb.OleDbCommand.ExecuteNonQuery()在Default2.btsignup_Click(Object發件人,EventArgs e)

但它不起作用。我需要它,以便每當有新用戶註冊時,都會爲其分配一個號碼。

有人可以幫我嗎?

+2

不要將密碼以明文形式存儲。 – SLaks

+0

你會得到什麼錯誤? – SLaks

+0

只是一個例子,請回答被問到的問題:) – Craftx398

回答

1

我要把平底船是password是MS Access中的保留字段名

嘗試

cmd.Parameters.AddWithValue("@userName", tbUname.Text.Trim()); 
cmd.Parameters.AddWithValue("@password", tbPass.Text.Trim()); 
cmd.Parameters.AddWithValue("@Name", tbName.Text.Trim()); 
cmd.Parameters.AddWithValue("@Email", tbEmail.Text.Trim()); 
string sql = "INSERT INTO users (username,[password],name,email) VALUES (@userName,@password, @Name, @Email)"; 

注意[]周圍password

+1

很好,這真的對我非常感謝你 – Craftx398

+0

@MikeMcCaughan看到他的問題 - 他確實嘗試指定列名:INSERT INTO用戶(用戶名,密碼,名稱,電子郵件)VALUES(@ userName,@ password, @Name,@Email)' - 問題是'裸''密碼'列名 – Alex

+0

爲什麼每個字段都沒有'[]'? –