首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADOX表列的"Nullable“属性?

ADOX表列的"Nullable“属性?
EN

Stack Overflow用户
提问于 2012-05-30 22:29:41
回答 2查看 4.2K关注 0票数 4

我正在尝试用.mdb创建一个访问文件( C# )。我将从SQL导出数据以用于遗留进程。我让它正常工作,我面临的唯一问题是将列设置为可空。

下面是我所拥有的内容(为了简洁起见,删除了大多数列):

代码语言:javascript
复制
private void CreateAndExportLegacyFile(DataTable data, string exportFilename)
{
    var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
    connectionString += "Data Source=" + exportFilename + ";Jet OLEDB:Engine Type=5";

    var catalog = new Catalog();
    catalog.Create(connectionString);

    var table = new Table { Name = "Main" };

    #region Column mapping
    table.Columns.Append("ID", DataTypeEnum.adVarWChar, 50);
    table.Columns.Append("FIRST", DataTypeEnum.adVarWChar, 50);
    table.Columns.Append("LAST", DataTypeEnum.adVarWChar, 50);
    #endregion

    foreach (Column column in table.Columns)
    {
        if (column.Name != "ID") column.Properties["Nullable"].Value = true;
    }

    catalog.Tables.Append(table);

    Marshal.FinalReleaseComObject(table);
    Marshal.FinalReleaseComObject(catalog.Tables);
    Marshal.FinalReleaseComObject(catalog.ActiveConnection);
    Marshal.FinalReleaseComObject(catalog);
}

当试图设置"Nullable“属性时,我会得到以下错误:”无法在集合中找到与请求的名称或序号相对应的项。“

我发现了关于是使用Required还是Nullable的相互矛盾的报告,但我尝试了这两种方法,并得到了相同的结果。

知道我为什么不能设置可空属性吗?在提取数据时,我可能只是懒惰和默认为空空,但如果可能的话,我想避免这种情况。

编辑:正如汉斯在评论中提到的,我不得不使用属性属性:

代码语言:javascript
复制
if (column.Name != "ID") column.Attributes = ColumnAttributesEnum.adColNullable;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-03 14:57:53

汉斯·帕桑特在评论中回答了这个问题,但从来没有把它作为回答。现在这样做是为了标记这个答案。必须使用属性属性:

代码语言:javascript
复制
if (column.Name != "ID") column.Attributes = ColumnAttributesEnum.adColNullable;
票数 6
EN

Stack Overflow用户

发布于 2022-05-10 13:14:12

以下是我使用C#和ADOX时使用的方法:

代码语言:javascript
复制
table.Columns["x"].ParentCalalog = myCat;
table.Columns["x"].Properties["Nullable"].Value = true;

我发现必须先设置.ParentCatlog属性,然后才能将.Properties["Nullable"].Value设置为true

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10825173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档