2011-06-27 15 views
6

Mam sytuację, mam tabelę dostępu o nazwie Przepływy gazu, które chcę dodać rekordy. Kiedy próbuję uruchomić mój INSERT podobnej tabeli Common Station, pojawia się następujący błąd:Zapytanie o tabelę ze spacjami w nazwie

"error hy000: syntax error, in query incomplete query clause"

Code jest:

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

Jak mogę rozwiązać ten błąd?

Odpowiedz

33

otaczają rozstawione pozycja z nawiasami kwadratowymi:

[Common station] 

Następnie uderzyć faceta, który zaprojektował bazy danych.

+1

Dzięki, absolutnie bym, gdyby nie mieszkał w Arizonie. Myślę, że wyślę mu teledysk do skeczu Rick Jamesa, w którym Rick James powie mu, co pięć palców mówi do żartu na twarzy. LMBO –

+0

Mam problem z facetem używającym słów kluczowych jako nazw kolumn. To samo rozwiązanie (np. [] - i być może uderzenie?). Istnieją powody, dla których tego nie robimy (czy słowo "konserwowalność" oznacza cokolwiek?). –

+0

Niezupełnie, nie ma wielkiego znaczenia, że ​​nie można wywodzić się z Gas_Flow_Rates lub GasFlowRates. Tak właśnie utworzył stół, o ile wiem. –

3
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

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

użyć nawiasów do nazwy "kosztorys" stołowych i polowych.

1

Spóźniam się na imprezę, którą znam, ale właśnie rozwiązałem tutaj mój własny problem ... Odtwarzanie w 2007 roku przy użyciu połączenia ODBC z SQL Db.

Nazwa tabeli jest Employee_Appointment Extra Szczegóły klienta Składnia wybrać się następująco SQlRecordSet.Open "select * from [Pracownik]. [Powołanie Extra Szczegóły Własne]", Conn, adOpenStatic, adLockOptimistic

Nadzieja ta oszczędza ktoś jeszcze kilka godzin grania!

Powiązane problemy