Запросить таблицу с пробелами в имени - PullRequest
8 голосов
/ 28 июня 2011

У меня есть ситуация, у меня есть таблица доступа с именем Скорость потока газа , в которую я хочу добавить записи. Когда я пытаюсь выполнить мой запрос вставки для аналогичной таблицы 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 ]

41 голосов
/ 28 июня 2011

Окружите разнесенный предмет квадратными скобками:

[Common station]

Затем шлепните парня, который проектировал базу данных.

5 голосов
/ 28 июня 2011

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

Используйте скобки для "цитирования" имен таблиц и полей.

4 голосов
/ 28 июня 2011
  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)"
2 голосов
/ 27 октября 2017

Опоздал на вечеринку, которую я знаю, но только что решил свою проблему здесь ... Воспроизведение в Access 2007 с использованием подключения ODBC к базе данных SQL.

Имя таблицы - Employee_Appointment. Дополнительная информация Custom Синтаксис для выбора выглядит следующим образом SQlRecordSet.Open "Выбрать * из [Сотрудник]. [Дополнительные сведения о назначении»], Conn, adOpenStatic, adLockOptimistic

Надеюсь, это сэкономит кому-то еще несколько часов игры!

...