【问题标题】:Syntax error in CREATE TABLE statementCREATE TABLE 语句中的语法错误
【发布时间】:2014-03-19 12:09:43
【问题描述】:

我在运行时创建了一个 MS Access 数据库并尝试创建一个表。 下面的代码在运行时创建表时显示错误“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();

【问题讨论】:

标签: c# winforms ms-access ms-access-2007


【解决方案1】:

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

您可以在此处找到包含有效 Access DDL 字段类型声明的表:Field type reference - names and values for DDL, DAO, and ADOX

【讨论】:

  • 谢谢@HansUp。它运作良好。请帮助我处理人际关系。 CatID 应该来自 Category 表?如何将 CatID 字段与 tblCategory 相关联?
  • 使用REFERENCES 关键字。有关示例,请参见 here --- 查看 “创建预订表” 下的示例。如果遇到麻烦,请发布新问题。
猜你喜欢
  • 2012-07-08
  • 2018-06-06
  • 2021-07-29
  • 2012-05-31
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多