LEMUEL  ADANE
LEMUEL ADANE

Reputation: 8818

How do you create an MS Access table in C# programmatically?

command.CommandText = "CREATE TABLE MyTable (" +
                "[Count] INT NOT NULL AUTO_INCREMENT PRIMARY KEY ," +
                "[TimeAndDate] TIMESTAMP NOT NULL ," +
                "[SerialNumber] VARCHAR( 14 ) NOT NULL ," +
                "[Result] BOOL NOT NULL ," +
                "UNIQUE ([TimeAndDate]))";

command.ExecuteNonQuery();

Code above flags syntax error exception, can you help me correct the query string? Thank you.

Upvotes: 1

Views: 9704

Answers (3)

reiniero
reiniero

Reputation: 428

I'd suggest pasting the resulting query text into an Access query; it will tell you where the error is.

On my Access XP, pasting the resulting SQL gave a syntax error on AUTO_INCREMENT; it should be AUTOINCREMENT (see Access 2007 SQL data types) and be specified as a data type, not a constraint. BOOL also gave an error => use BIT

Result which worked:

CREATE TABLE MyTable (
               [Count] AUTOINCREMENT NOT NULL PRIMARY KEY ,
               [TimeAndDate] TIMESTAMP NOT NULL ,
               [SerialNumber] VARCHAR( 14 ) NOT NULL ,
               [Result] BIT NOT NULL ,
               UNIQUE ([TimeAndDate]));

Upvotes: 3

GvS
GvS

Reputation: 52518

Just after MyTable you use an open bracket "(", that you do not close.

To create tables in Access, I normally use ADOX, this prevents this kind of syntax errors.

Upvotes: 1

Klaus Byskov Pedersen
Klaus Byskov Pedersen

Reputation: 120937

You need an ending parenthesis ).

Upvotes: 2

Related Questions