的連接工作fine.I我只是面臨的問題在這個部分。我的設計記錄表的觀點如下:如何解決「在INSERT INTO語句的語法錯誤」
名稱類型大小
RecordID Long Integer 4
BatchID Long Integer 4
ProcessID Long Integer 4
EmployeeID Long Integer 4
Start Date With Time 8
End Date With Time 8
Status Yes/No 1
Hour Long Integer
這裏是我的代碼:
protected void btnSave_Click(object sender, EventArgs e)
{
DateTime a = new DateTime(cldStart.SelectedDate.Year,cldStart.SelectedDate.Month,cldStart.SelectedDate.Day,Convert.ToInt32(ddlStartHour.SelectedValue),Convert.ToInt32(ddlStartMinute.SelectedValue),00);
DateTime b = new DateTime(cldEnd.SelectedDate.Year, cldEnd.SelectedDate.Month, cldEnd.SelectedDate.Day, Convert.ToInt32(ddlEndHour.SelectedValue), Convert.ToInt32(ddlEndMinute.SelectedValue), 00);
TimeSpan c = b-a;
//insert into record table
using (OleDbConnection con = new OleDbConnection(conString))
{
try
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO RECORD (BatchID,ProcessID,EmployeeID,Start,End,Status,Hour) VALUES (@batchid,@processid,@employeeid,@start,@end,@status,@hours)";
cmd.Parameters.AddWithValue("@batchid", Convert.ToInt32(ddlBatchNo.SelectedValue));
cmd.Parameters.AddWithValue("@processid", Convert.ToInt32(ddlSubCategory.SelectedValue));
cmd.Parameters.AddWithValue("@employeeid", Convert.ToInt32(ddlEmployeeId.SelectedValue));
cmd.Parameters.AddWithValue("@start",a.ToString());
cmd.Parameters.AddWithValue("@end", b.ToString());
cmd.Parameters.AddWithValue("@hours", c.ToString());
cmd.Parameters.AddWithValue("@status",chboxStatus.Checked);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
txtRemark.Text = "wrong";
}
}
}
我試圖插入記錄表,但它讓我
「在INSERT INTO命令語法錯誤」。
不知道什麼是錯的。
太謝謝你了!我犯了一個愚蠢的錯誤,使用列名作爲關鍵字!!現在它工作得很好 – user3431431