查询名称中包含空格的表

时间:2011-06-27 20:01:00

标签: c# ms-access-2007 tablename

我有一种情况,我有一个名为 Gas Flow Rates 的Access表,我想添加记录。当我尝试为类似的表 Common Station 运行插入查询时,出现以下错误:

  

“错误hy000:语法错误,在查询不完整查询子句中”

代码是:

using System;
using System.Data.Odbc;

class MainClass
{
static void Main(string[] args)
{
    string connectionString = "Dsn=Gas_meter";
    string sqlins = "";
    OdbcConnection conn = new OdbcConnection(connectionString);

    OdbcCommand cmdnon = new OdbcCommand(sqlins, conn);
    conn.Open();

    try
    {
       cmdnon.CommandText = "INSERT INTO 'Common station' ( S1Flow, S2Flow, S3Flow, S4Flow) VALUES (9999,999, 999, 999)";
        //Once the above line works replace it with cmdnon.CommandText= "INSERT INTO Gas Flow Rates ( S1Flow, S2Flow, S3Flow, S4Flow) VALUES (9999,999, 999, 999)"
        int rowsAffected = cmdnon.ExecuteNonQuery();
        Console.WriteLine(rowsAffected);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    finally
    {
        conn.Close();
    }
}
}

我如何克服这个错误?

4 个答案:

答案 0 :(得分:41)

用方括号围绕间隔开的项目:

[Common station]

然后拍打设计数据库的人。

答案 1 :(得分:5)

SELECT * FROM [My Crazy Table With Spaces and Other Chars!]

使用括号“引用”表格和字段名称。

答案 2 :(得分:4)

  cmdnon.CommandText = "INSERT INTO '[Common station]' ( S1Flow, S2Flow, S3Flow, S4Flow) VALUES (9999,999, 999, 999)";
    //Once the above line works replace it with cmdnon.CommandText= "INSERT INTO Gas Flow Rates ( S1Flow, S2Flow, S3Flow, S4Flow) VALUES (9999,999, 999, 999)"

答案 3 :(得分:2)

我认识的派对迟到了,但刚刚在这里解决了我自己的问题...... 使用ODBC连接到SQL Db。在Access 2007中播放。

表名是Employee_Appointment Extra Detail Custom 要选择的语法如下 SQlRecordSet.Open“从[员工]中选择*。[约会额外细节自定义]”,Conn,adOpenStatic,adLockOptimistic

希望这可以节省其他人几个小时的游戏时间!