我有一個名字,姓氏,電子郵件,主管的表單。然後,我有我的代碼背後的按鈕設置了此使用自動增量主鍵訪問數據庫和C#問題
private void agentInsertButton_Click(object sender, EventArgs e)
{
try
{
ad.InsertCommand = new OleDbCommand("insert into Agents values ([FirstName],[LastName],[Email],[Supervisor])", con);
ad.InsertCommand.Parameters.Add("@FirstName", OleDbType.VarChar).Value = agentNametextBox1.Text.ToString();
ad.InsertCommand.Parameters.Add("@LastName", OleDbType.VarChar).Value = agentLastNametextBox4.Text.ToString();
ad.InsertCommand.Parameters.Add("@Email", OleDbType.VarChar).Value = agentEmailtextBox3.Text.ToString();
ad.InsertCommand.Parameters.Add("@Supervisor", OleDbType.VarChar).Value = agentSupervisortextBox2.Text.ToString();
con.Open();
ad.InsertCommand.ExecuteNonQuery();
con.Close();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
};
我收到查詢的價值觀和目標字段的錯誤數是不一樣的。我確信這是我通過變量和AgentID導致問題的數據庫發送方式。我是新來的,但這是我的工作想要使用的。期待一個堅實的答案。
我只是用一個名爲簡單的訪問數據庫代理
字段是
AgentID - auto number
FirstName - text
LastName - text
Email - text
Supervisor - text
您可能需要爲你宣稱他們使用你的參數('@ firstname')或使用問號佔位符(?'') – Brad 2014-09-11 03:51:28
此外,有沒有一些關於錯誤那向你表明這是一個PK問題?聽起來像一個參數問題 – Brad 2014-09-11 03:58:35
爲什麼你在數據適配器的'InsertCommand'上調用'ExecuteNonQuery'?如果你有一個數據適配器,那麼你應該用數據適配器上的變化填充一個'DataTable'並調用'Update'。如果你不打算調用'Update',那麼適配器是毫無意義的,所以擺脫它。只需創建命令並調用它'ExecuteNonQuery'。 – jmcilhinney 2014-09-11 04:08:16