Access mdb字段类型获取

相信不会再用到

https://www.daniweb.com/programming/software-development/threads/373942/getoledbschematable-data-types

https://www.w3schools.com/asp/prop_para_type.asp

COLUMN_NAME
CHARACTER_MAXIMUM_LENGTH
COLUMN_FLAGS
COLUMN_HASDEFAULT
character_octet_length
NUMERIC_PRECISION
NUMERIC_SCALE
IS_NULLABLE
TABLE_NAME
ORDINAL_POSITION
DATA_TYPE

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + address;
myConn = new OleDbConnection(strCon);

myConn.Open();
//foreach (DataRow r in myConn.GetSchema("Tables").Select("TABLE_TYPE = 'TABLE'"))
//{
//    tables.Add(r["TABLE_NAME"].ToString());
//}
//DataTable schema = myConn.GetSchema("Columns");
//foreach (DataRow row in schema.Rows)
//{
//    cols.Add(row.Field<string>("COLUMN_NAME"));
//    tbls.Add(row.Field<string>("TABLE_NAME"));
//}


DataTable schemaTable = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
//List the table name from each row in the schema table.
//for (int i = 0; i < schemaTable.Rows.Count; i++)
//{
//    string Current_Str = schemaTable.Rows[i].ItemArray[2].ToString();
//}
DataTable tableColumns = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "cfdj", null });
foreach (DataRow row in tableColumns.Rows)
{
    var columnNameColumn = row["COLUMN_NAME"];
    var dateTypeColumn = row["DATA_TYPE"];
    var ordinalPositionColumn = row["ORDINAL_POSITION"];
}


StringBuilder sbColumnDetails = new StringBuilder();
foreach (DataColumn column in schemaTable.Columns)
{
    sbColumnDetails.Append("Column Name: ");
    sbColumnDetails.Append(column.ColumnName);

    sbColumnDetails.Append(" ");

    sbColumnDetails.Append("Column DataType: ");
    sbColumnDetails.Append(column.DataType.ToString());

    sbColumnDetails.Append(" || ");
}
ConstantValueDescription
adEmpty 0 No value
adSmallInt 2 A 2-byte signed integer.
adInteger 3 A 4-byte signed integer.
adSingle 4 A single-precision floating-point value.
adDouble 5 A double-precision floating-point value.
adCurrency 6 A currency value
adDate 7 The number of days since December 30, 1899 + the fraction of a day.
adBSTR 8 A null-terminated character string.
adIDispatch 9 A pointer to an IDispatch interface on a COM object. Note: Currently not supported by ADO.
adError 10 A 32-bit error code
adBoolean 11 A boolean value.
adVariant 12 An Automation Variant. Note: Currently not supported by ADO.
adIUnknown 13 A pointer to an IUnknown interface on a COM object. Note: Currently not supported by ADO.
adDecimal 14 An exact numeric value with a fixed precision and scale.
adTinyInt 16 A 1-byte signed integer.
adUnsignedTinyInt 17 A 1-byte unsigned integer.
adUnsignedSmallInt 18 A 2-byte unsigned integer.
adUnsignedInt 19 A 4-byte unsigned integer.
adBigInt 20 An 8-byte signed integer.
adUnsignedBigInt 21 An 8-byte unsigned integer.
adFileTime 64 The number of 100-nanosecond intervals since January 1,1601
adGUID 72 A globally unique identifier (GUID)
adBinary 128 A binary value.
adChar 129 A string value.
adWChar 130 A null-terminated Unicode character string.
adNumeric 131 An exact numeric value with a fixed precision and scale.
adUserDefined 132 A user-defined variable.
adDBDate 133 A date value (yyyymmdd).
adDBTime 134 A time value (hhmmss).
adDBTimeStamp 135 A date/time stamp (yyyymmddhhmmss plus a fraction in billionths).
adChapter 136 A 4-byte chapter value that identifies rows in a child rowset
adPropVariant 138 An Automation PROPVARIANT.
adVarNumeric 139 A numeric value (Parameter object only).
adVarChar 200 A string value (Parameter object only).
adLongVarChar 201 A long string value.
adVarWChar 202 A null-terminated Unicode character string.
adLongVarWChar 203 A long null-terminated Unicode string value.
adVarBinary 204 A binary value (Parameter object only).
adLongVarBinary 205 A long binary value.
AdArray 0x2000 A flag value combined with another data type constant. Indicates an array of that other data type.

原文地址:https://www.cnblogs.com/yansc/p/15620539.html