问题
I have a situation, I have a Access table named Gas Flow Rates that I want to add records. When I try to run my insert query for a similar table Common Station, I get the following error:
"error hy000: syntax error, in query incomplete query clause"
Code is:
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();
}
}
}
How do I overcome that error?
回答1:
Surround the spaced out item with square brackets:
[Common station]
Then slap the guy who designed the database.
回答2:
SELECT * FROM [My Crazy Table With Spaces and Other Chars!]
Use brackets to "quote" table and field names.
回答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)"
回答4:
Late to the party I know, but have just solved my own issue here... Playing in access 2007 using ODBC connection to an SQL Db.
Table name is Employee_Appointment Extra Detail Custom Syntax to select is as follows SQlRecordSet.Open "Select * from [Employee].[Appointment Extra Detail Custom]", Conn, adOpenStatic, adLockOptimistic
Hope this saves someone else a few hours of playing!
来源:https://stackoverflow.com/questions/6498251/query-a-table-that-has-spaces-in-its-name