2014-03-19 494 views
-1

我在運行時創建了一個MS Access數據庫,並試圖創建一個表。 下面的代碼在運行時創建表時顯示錯誤「CREATE TABLE語句中的語法錯誤」。CREATE TABLE語句中的語法錯誤

cmmd.CommandText = "CREATE TABLE tblContacts([SectionID] AUTOINCREMENT PRIMARY KEY,[ScetionName] Text(50), [CatID] Number(Integer), [Rate] Number(Double), [Prefix] Text(5), [Suffix] Text(5), [NextNumber] Number(Integer), [Inactive] Yes, [ModUserID] Number(Integer),[ModDate] Date)"; 
cmmd.ExecuteNonQuery(); 
+1

[通過學習基礎知識( http://msdn.microsoft.com/en-us/library/ms971485.aspx) – Sadique

+0

看看這個問題:http://stackoverflow.com/questions/1388971/how-i-create-access-database- at-runtime-in-c – BudBrot

回答

1

Access數據庫引擎會忽略字段類型聲明,如Number(Integer)。假設你會從OLEDB連接執行該語句,使用這樣的產品......

cmmd.CommandText = "CREATE TABLE tblContacts([SectionID] COUNTER PRIMARY KEY,[ScetionName] Text(50), [CatID] Long, [Rate] Double, [Prefix] Text(5), [Suffix] Text(5), [NextNumber] Number(Integer), [Inactive] YesNo, [ModUserID] Long,[ModDate] DateTime)"; 

你可以找到一個表在此包括有效的Access DDL字段類型聲明:Field type reference - names and values for DDL, DAO, and ADOX

+0

謝謝@HansUp。它運作良好。請幫我做關係。 CatID應該來自分類表?如何將它與CatID字段關聯到tblCategory? – Sanjeev4evr

+1

使用'REFERENCES'關鍵詞。請參閱[這裏](http://allenbrowne.com/func-DDL.html#CreateTableDDL)示例---查看*「創建預訂表」*下的示例。如果遇到麻煩,請發佈新問題。 – HansUp

相關問題