reader.GetSchemaTable в базе данных Oracle не возвращает столбец DataTypeName - PullRequest
0 голосов
/ 30 мая 2011

Doing the table = reader.GetSchemaTable ();на сервере sql 2005 возвращает мне столбец DataTypeName, чтобы узнать тип данных моего оператора select.

Выполнение того же кода на сервере oracle возвращает мне столбец NO DataTypeName.

Как вы тогда получаетеимя типа данных для поля column1 с использованием select column1 из оператора tablename?

Ответы [ 2 ]

0 голосов
/ 02 мая 2012

При использовании Oracle DbDataReader.GetSchemaTable не работает.

Вы можете использовать OracleDataReader.GetSchemaTable.

Другим вариантом будет перебирать поля DbDataReader, например:

    public bool Test(DbDataReader _dr, string columnName)
    {
        for (int i = 0; i <= _dr.FieldCount - 1; i++)
        {
            if ((_dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)))
            {
               //Change this to your needs
               _dr.GetDataTypeName(i);
               return true;
            }
        }
        return false;
    }
0 голосов
/ 30 мая 2011

Ну, какой читатель вы используете, есть OracleDataReader.GetSchemaTable Метод , который должен дать то, что вы хотите

...