GetChar

Метод предоставляет приведенный к типу данных char (в UTF-16 кодировке) первый символ указанного поля текущей строки выборки данных. Т.к. в текущей версии ADO.NET-провайдера приведение типов не выполняется, то корректно метод может применяться только к полям с типом данных char, varchar, nchar, nvarchar, иначе будет выдано исключение.

Синтаксис
public abstract char GetChar(int ordinal);

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

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

Первый символ указанного поля текущей выборки данных.

Исключения
InvalidCastException Невозможно преобразовать тип данных указанного столбца к типу данных char.
IndexOutOfRangeException Задан порядковый номер несуществующего столбца.
InvalidOperationException Не установлена текущая строка выборки данных (необходимо выполнить метод Read()).
Примеры

1)

// C#
using System;
using System.Data;
using System.Data.Common;

class GetChar
{
  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 'ЛИНТЕР'";
    // Выполнение SQL-запроса
    DbDataReader reader = cmd.ExecuteReader();
    // Обработка результатов запроса
    Char value;
    while (reader.Read())
    {
      value = reader.GetChar(0);
      Console.WriteLine(value);
    }
    // Освобождение ресурсов
    reader.Dispose();
    cmd.Dispose();
    con.Dispose();
  }
}

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

Л

2) Подсчитать в выборке данных (из таблицы AUTO) количество автомобилей, название которых начинается с буквы F, и вывести их список на консоль.

Примечание

Пример приведен только для иллюстрации использования метода, т.к. данная информация может быть получена с помощью агрегатной функции count() в SELECT-запросе.

// C#
using System;
using System.Data;
using System.Data.Common;

class GetChar
{
  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 model from auto";
    // Выполнение SQL-запроса
    DbDataReader reader = cmd.ExecuteReader();
    // Обработка результатов запроса
    int count = 0;
    Console.WriteLine("Автомобили, название которых начинаются с буквы F:");
    while (reader.Read())
    {
      if (reader.GetChar(0) == 'F')
      {
        Console.WriteLine(reader.GetString(0));
        count++;
      }
    }
    Console.WriteLine("Количество авто, название которых начинаются с буквы F: " + count);
    // Освобождение ресурсов
    reader.Dispose();
    cmd.Dispose();
    con.Dispose();
  }
}

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

Автомобили, название которых начинаются с буквы F:
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
FULVIA SPORT 1600
Количество авто, название которых начинаются с буквы F: 8