使用 OleDbDataAdapter.Update 將 DataSet 變更寫回 Access 時,拋出「Insert into 語法錯誤」。
NOT NULL 欄位在 DataRow 中是否有值。[齒數] 括起,或避免使用中文欄位名。OleDbCommandBuilder 自動生成的 SQL 可能不支援複雜情況,建議手寫 InsertCommand。
// 手動指定 InsertCommand,欄位名加中括號
string sql = "INSERT INTO WorkPieceData ([齒數], [法面模數]) VALUES (?, ?)";
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.Parameters.Add("@p1", OleDbType.VarChar, 50, "齒數");
cmd.Parameters.Add("@p2", OleDbType.VarChar, 50, "法面模數");
adapter.InsertCommand = cmd;
並檢查 DataRow.RowState 確認為 Added。