2011-06-27 14 views
6

Bir durum var, kayıt eklemek istiyorum Gaz Akış Oranları adlı bir Access tablo var. Ben Ortak İstasyonu benzer tablo için benim ekleme sorgusu çalıştırmak çalıştığınızda, aşağıdaki hatayı olsun:Adında boşluk bulunan bir tabloyu sorgula

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

Kod geçerli:

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

Bunu nasıl hata üstesinden gelirsiniz? "Alıntı" tablosu ve alan adları için

cevap

33

Surround aralıklı öğe:

[Common station] 

Sonra veritabanını tasarlanmış adamı tokat.

+1

Teşekkürler, Arizona'yı yaşamamış olsaydım kesinlikle yapardım. Sanırım ona Chappelle şovu Rick James'in bir klibini göndereceğim ve Rick James ona beş parmağın yüz şakalarına ne dediğini anlattı. LMBO –

+0

Anahtar kelime olarak sütun adları kullanan bir adamla ilgili bir sorunum var. Aynı çözüm (yani [] - ve belki de tokat?). Bunu yapmadığımız için sebepler var (sürdürülebilirlik kelimesi bir şey ifade ediyor mu?). –

+0

Gerçekten de, Gas_Flow_Rates veya GasFlowRates'den türemeyen büyük bir önem taşımaz. Bu, masayı bildiğim kadarıyla yarattığı yoldu. –

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!]

köşeli parantez kullanın. Köşeli parantez ile

1

Biliyorum partiye geçtiğini biliyorum, ancak kendi sorunumu çözdüm ... Access 2007'de bir SQL Db'ye ODBC bağlantısı kullanarak oynamak.

Tablo adı Employee_Appointment Ekstra Detay Özel Sözdizimi seçmektir, Conn, adOpenStatic, adLockOptimistic

Umut bu kayıtları "[Çalışan]. [Atama Ekstra Detay Custom] seçin *" SQlRecordSet.Open aşağıdaki gibidir Bir başkası çaldığı birkaç saat!

İlgili konular