C# CREATETABLE语句中的语法错误

C# CREATETABLE语句中的语法错误,c#,winforms,ms-access,ms-access-2007,C#,Winforms,Ms Access,Ms Access 2007,我在运行时创建了一个MS Access数据库,并尝试创建一个表。 下面的代码显示了在运行时创建表时出现的错误“CREATETABLE语句中的语法错误” cmmd.CommandText = "CREATE TABLE tblContacts( [SectionID] AUTOINCREMENT PRIMARY KEY,[ScetionName] Text(50), [CatID] Number(Integer), [Rate] Number(Double), [Prefix] Text(5),

我在运行时创建了一个MS Access数据库,并尝试创建一个表。 下面的代码显示了在运行时创建表时出现的错误“CREATETABLE语句中的语法错误”

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

Access db引擎将阻止字段类型声明,例如
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)";

您可以在这里找到一个包含有效访问DDL字段类型声明的表:

看看这个问题:谢谢@HansUp。它工作得很好。请帮我处理人际关系。CatID应来自类别表?如何将it CatID字段与TBL类别关联?请使用
参考
关键字。请参阅以获取示例--查看“创建预订表”下的示例。如果你遇到麻烦,就发一个新问题。