从 Access 数据库中获取所需的列

Get required columns from Access database

目前,我正在使用 GetOleDbSchemaTable 获取 table 和列。我还想知道是否需要给定的列。

string[] rest = new string[] { null, null, tableName, null };
DataTable rows = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, rest);
foreach (DataRow rr in rows.Rows)
{
    string tbrow = rr["COLUMN_NAME"].ToString();
    int colnum_type = Int32.Parse(rr["DATA_TYPE"].ToString());
    string datatype = get_dataType(colnum_type)
}

这样我就得到了给定列的列和数据类型。现在我想获取列表或获取 table 中所需字段的方法。

使用 GetSchema 方法并请求 COLUMNS 集合将 return 一个数据表,您可以在其中找到 IS_NULLABLE 属性

using(OleDbConnection con = new OleDbConnection(......)
{ 
    con.Open();
    string[] rest = new string[] { null, null, tableName, null };
    var schema = con.GetSchema("COLUMNS", rest);
    foreach (DataRow row in schema.Rows)
        Console.WriteLine($"Column={row["COLUMN_NAME"]}, NULLABLE={row["IS_NULLABLE"]}");

}

顺便说一下,刚刚检查了您的方法,GetOleDbSchemaTable return 是同一个数据表,所以它只是 IS_NULLABLE 列

中存储的值