从 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 列
中存储的值
目前,我正在使用 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 列
中存储的值