GetFieldType

Метод предоставляет тип данных указанного поля текущей строки выборки данных в формате .NET (например, тип данных INTEGER СУБД ЛИНТЕР будет представлен как System.Int32).

Синтаксис
public abstract Type GetFieldType(int ordinal);

ordinal – порядковый номер поля в текущей строке выборки данных (отсчет начинается с 0).

Возвращаемое значение

Значение типа System.Type указанного поля текущей строки выборки данных.

Соответствие типов данных СУБД ЛИНТЕР и .NET:

СУБД ЛИНТЕР Аналог в .NET
INTEGER System.Int32
SMALLINT System.Int16
BIGINT System.Int64
BYTE System.Byte[]
VARBYTE System.Byte[]
REAL System.Single
DOUBLE System.Double
BOOLEAN System.Boolean
CHAR System.String
VARCHAR System.String
NCHAR System.String
NVARCHAR System.String
DECIMAL System.Decimal
BLOB System.Byte[]
FLOAT System.Single или System.Double в зависимости от точности FLOAT (< точность >)
DATE System.DateTime
EXTFILE System.String
Исключения
IndexOutOfRangeException Задан порядковый номер несуществующего столбца.
Пример
// C#
using System;
using System.Data;
using System.Data.Common;

class GetFieldType
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString =
      "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
    con.Open();
    // Создание объекта DbCommand
    DbCommand cmd = factory.CreateCommand();
    cmd.Connection = con;
    // Формирование текста SQL-запроса
    cmd.CommandText = "Select sysdate, 45.67";
    // Выполнение SQL-запроса
    DbDataReader reader = cmd.ExecuteReader();
    // Обработка результатов запроса
    Type dataType0 = reader.GetFieldType(0);
    Type dataType1 = reader.GetFieldType(1);
    Console.WriteLine(dataType0);
    Console.WriteLine(dataType1);
    // Освобождение ресурсов
    reader.Dispose();
    cmd.Dispose();
    con.Dispose();
  }
}

Результат выполнения примера:

System.DateTime
System.Decimal