Я пытаюсь прочитать имена столбцов таблицы «Улицы» в базе данных Access, открыв OleDbConnection.Я вызываю GetOleDbSchemaTable, но не могу понять, как добраться до моих столбцов.
Я бы хотел использовать .NET 3.5 framework, если это возможно.
using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); DataTable tableColumns = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "Streets", null })); foreach (DataRow row in tableColumns.Rows) { var columnNameColumn = row["COLUMN_NAME"]; var dateTypeColumn = row["DATA_TYPE"]; var ordinalPositionColumn = row["ORDINAL_POSITION"]; ... } }
Это работает для меня, помещает имена столбцов таблицы улиц в список
OleDbCommand mdbCommand = new OleDbCommand("SELECT * FROM Streets", mdbConnection); OleDbDataReader myReader = mdbCommand.ExecuteReader(CommandBehavior.KeyInfo); DataTable schemaTable = myReader.GetSchemaTable(); List<String> columnNameList = new List<string>(); foreach (DataRow myField in schemaTable.Rows) { foreach (DataColumn myProperty in schemaTable.Columns) { if (myProperty.ColumnName == "ColumnName") columnNameList.Add(myField[myProperty].ToString()); } }