2013-01-01 20 views
0

當我按下插入,我收到錯誤:Syntax error in INSERT INTO statement如何通過參數插入新值自動編號訪問

  • EmployeeID(自動編號)
  • EmployeeName(文本)
  • Position(文本)
  • Address(Text)

    OleDbDataAdapter ad; 
    DataSet ds; 
    DataTable dt; 
    
    protected void SetInsertParameters() 
    { 
        string sql = "INSERT INTO Employee(EmployeeName,Position,Address)"+ 
           " VALUES (@EmployeeName,@Position,@Address)"; 
        ad.InsertCommand = new OleDbCommand(sql, con); 
    
    
        OleDbParameter param = new OleDbParameter("@EmployeeName", OleDbType.VarChar); 
        param.SourceColumn = "EmployeeName"; 
        param.SourceVersion = DataRowVersion.Current; 
        ad.InsertCommand.Parameters.Add(param); 
    
        param = new OleDbParameter("@Position", OleDbType.VarChar); 
        param.SourceColumn = "Position"; 
        param.SourceVersion = DataRowVersion.Current; 
        ad.InsertCommand.Parameters.Add(param); 
    
        param = new OleDbParameter("@Address", OleDbType.VarChar); 
        param.SourceColumn = "Address"; 
        param.SourceVersion = DataRowVersion.Current; 
        ad.InsertCommand.Parameters.Add(param); 
    } 
    
    
    void InsertNewValues() 
    { 
        dt = ds.Tables["Employee"]; 
        DataRow row = dt.NewRow(); 
        row[0] = txt_employeeID.Text; 
        row[1] = txt_name.Text; 
        row[2] = txt_position.Text; 
        row[3] = txt_address.Text; 
        dt.Rows.Add(row); 
        ad.Update(ds, "Employee"); 
        ad.Fill(ds); 
    
    } 
    
+0

您有一個名爲在你的表格你的專欄?我在這裏看不到它。 –

+0

另一件事是,您可能正在使用'CommandType.Text',我不相信這種類型的插入。它用於'.TableDirect'或'.StoredProcedure' –

回答

0

位置是reserved word,必須進行包圍曝光:

"INSERT INTO Employee(EmployeeName,[Position],Address)" 
+0

感謝您的幫助...我做了 –

相關問題