You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#创建Access数据库表时设置自增列报错求助

解决方法

问题根源

报错的核心原因是属性名称大小写不匹配,ADOX中自增属性的正确名称是AutoIncrement(首字母大写),而非你代码中的小写autoincrement;另外操作顺序也需要调整,应先设置列的自增属性,再将其设为主键。

修改后的代码

private void createDatabaseToolStripMenuItem_Click(object sender, EventArgs e)
{
    var cat = new Catalog();
    var accountTable = new Table();

    cat.Create(AC.GetConnectionString());

    // 创建Account表
    accountTable.Name = "Account";
    // 追加ID列并保存引用
    var idColumn = accountTable.Columns.Append("ID", DataTypeEnum.adInteger, 4);
    // 设置自增属性(注意名称为AutoIncrement)
    idColumn.Properties["AutoIncrement"].Value = true;
    // 将ID设为主键
    accountTable.Keys.Append("PrimaryKey", KeyTypeEnum.adKeyPrimary, "ID", null, null);

    // 将表追加到数据库
    cat.Tables.Append(accountTable);

    var dBcon = cat.ActiveConnection as OleDbConnection;
    if (dBcon != null) dBcon.Close();
    MessageBox.Show("Database Created Successfully");
}

关键说明

  • 属性名称正确性:ADOX的Column.Properties集合对名称大小写敏感,必须使用AutoIncrement才能找到对应属性;
  • 操作顺序优化:先设置列的自增属性,再将其配置为主键,符合Access表结构的创建逻辑;
  • 变量复用:将追加的ID列赋值给变量idColumn,后续直接操作该变量,避免重复通过索引查找列,提升代码可读性与稳定性。

内容的提问来源于stack exchange,提问作者Richard A Knox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:12:46