Получить необходимые столбцы из базы данных Access - PullRequest
0 голосов
/ 19 января 2019

В настоящее время я получаю таблицы и столбцы с помощью GetOleDbSchemaTable. Я также хочу получить, что данные столбцы являются обязательными или нет.

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

Таким образом, я получаю столбец и тип данных данного столбца. Теперь я хочу получить список или способ, с помощью которого я могу получить необходимые поля в таблице.

1 Ответ

0 голосов
/ 19 января 2019

Использование метода GetSchema и запрос коллекции COLUMNS вернет DataTable, где вы можете найти свойство 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 возвращает ту же таблицу данных так,это просто значение, хранящееся в столбце IS_NULLABLE

...