【问题标题】:SELECT * INTO Incomplete Query ClauseSELECT * INTO 不完整查询子句
【发布时间】:2015-11-13 15:33:53
【问题描述】:

我似乎在我的 OleDbCommand 中做错了什么,但我不知道它是什么。我正在尝试在我的访问数据库中创建另一个表,该表与第一个表完全相同,但名称不同,方法是从一个表中复制所有内容并使用 SELECT INTO。我不知道为什么它不起作用。

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

我收到的错误消息是“查询中的语法错误。查询子句不完整”。有谁知道这是什么意思?

【问题讨论】:

  • 语法错误意味着你的查询写错了...
  • @messerbill:呵呵。而SELECT * INTO 是一个表创建查询。一点都没错。

标签: visual-studio ms-access oledb


【解决方案1】:

带有空格的表或字段名称不是用''围绕它们指定的,而是用方括号。

你的命令应该是:

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

【讨论】:

    【解决方案2】:

    您甚至可以格式化日期以使代码更具可读性:

    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();
    

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 2019-01-02
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多