Запрос таблицы, в имени которой есть пробелы

У меня возникла ситуация, у меня есть таблица 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();
    }
}
}

Как мне преодолеть эту ошибку?


person LaDante Riley    schedule 27.06.2011    source источник


Ответы (3)


Заключите удаленный элемент в квадратные скобки:

[Common station]

Затем дайте пощечину парню, который разработал базу данных.

person Gregory A Beamer    schedule 27.06.2011
comment
Спасибо, я бы так и сделал, если бы он не жил в Аризоне. Я думаю, что я пошлю ему отрывок из пародии Рика Джеймса из шоу Chappelle, где Рик Джеймс рассказывает ему, что пять пальцев сказали шутке о лице. LMBO - person LaDante Riley; 28.06.2011
comment
У меня проблема с парнем, использующим ключевые слова в качестве имен столбцов. То же решение (т.е. [] - и, возможно, пощечина?). Есть причины, по которым мы этого не делаем (слово ремонтопригодность что-нибудь значит?). - person Gregory A Beamer; 28.06.2011
comment
Не совсем, это не имеет большого значения, которое не может быть получено ни из Gas_Flow_Rates, ни из GasFlowRates. Насколько я знаю, именно так он создал таблицу. - person LaDante Riley; 28.06.2011
comment
Я очень сильно смеялся над этим. - person exrezzo; 19.05.2021

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

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

person Mike Caron    schedule 27.06.2011

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

Имя таблицы — Employee_Appointment Extra Detail Custom Синтаксис для выбора выглядит следующим образом: SQlRecordSet.Open «Выбрать * из [Employee].[Appointment Extra Detail Custom]», Conn, adOpenStatic, adLockOptimistic

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

person steve    schedule 27.10.2017