2015-11-13 107 views
0

我似乎在我的OleDbCommand中做錯了事,但我不知道它是什麼。我試圖在我的訪問數據庫中創建另一個表,它與第一個完全相同,但名稱不同,通過從一個複製所有內容並使用SELECT INTO。我不知道爲什麼它不起作用。SELECT * INTO不完整的查詢子句

 OleDbCommand copyAttendanceCommand = new OleDbCommand("SELECT * INTO '" + "Attendance " + DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year + "' FROM Attendance",loginForm.connection); 
     copyAttendanceCommand.ExecuteNonQuery(); 

我得到的錯誤消息說:「查詢中的語法錯誤。不完整的查詢子句。」有誰知道這意味着什麼?

+0

語法錯誤意味着你寫你的查詢錯誤的... – messerbill

+0

@ messerbill:杜。而'SELECT * INTO'是一個表創建查詢。根本沒有錯。 – Andre

回答

1

帶空格的表格或字段名稱不以其周圍的''指定,但帶有方括號。

你的命令應該是:

"SELECT * INTO [Attendance " + DateTime.Now.Day + "/" + DateTime.Now.Month + "/" 
    + DateTime.Now.Year + "] FROM Attendance" 
0

你甚至可以格式化你的日期,以使代碼更易讀:

string today = DateTime.Today.ToString("d'/'M'/'yyyy"); 
string sql ="SELECT * INTO [Attendance " + today + "] FROM Attendance"; 

OleDbCommand copyAttendanceCommand = new OleDbCommand(sql, loginForm.connection); 
copyAttendanceCommand.ExecuteNonQuery();