используйте GetOleDbSchemaTable, чтобы получить столбцы таблицы с именем "Street" - PullRequest
3 голосов
/ 13 октября 2010

Я пытаюсь прочитать имена столбцов таблицы «Улицы» в базе данных Access, открыв OleDbConnection.Я вызываю GetOleDbSchemaTable, но не могу понять, как добраться до моих столбцов.

Я бы хотел использовать .NET 3.5 framework, если это возможно.

Ответы [ 2 ]

11 голосов
/ 13 октября 2010
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"];
        ...
    }
}
0 голосов
/ 13 октября 2010

Это работает для меня, помещает имена столбцов таблицы улиц в список

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());
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...