2015-11-13 108 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();