Как инициализировать списки из баз данных без привязки к C#

Обратите внимание, что это очень ручной способ инициализации списков. Часто вы можете легко отображать данные, используя привязку данных.

В этом примере я добавил проект базы данных Access Books.mdb в проект и установил его свойство «Копировать в выходной каталог» в «Копировать, если новый». Программа использует объекты данных OLE DB, поэтому я добавили в код следующую инструкцию:

using System.Data.OleDb;

Следующий код показывает, как программа инициализирует свой ListBox при запуске.

// Соединение с базой данных.
private OleDbConnection Conn;

// Отображение списка названий.
private void Form1_Load(object sender, EventArgs e)
{
    // Создаем имя файла базы данных.
    // Предполагается, что он находится в каталоге исполняемого файла.
    string db_name = Application.StartupPath + "\\Books.mdb";

    // Подключение к базе данных
    Conn = new OleDbConnection(
        "Provider=Microsoft.ACE.OLEDB.12.0;" +
        "Data Source=" + db_name + ";" +
        "Mode=Share Deny None");

    // Получить заголовки.
    OleDbCommand cmd = new OleDbCommand(
        "SELECT Title FROM Books ORDER BY Title",
        Conn);
    Conn.Open();
    OleDbDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        lstTitles.Items.Add(reader["Title"]);
    }
    reader.Close();
    Conn.Close();
}

Код начинается с объявления объекта OleDbConnection с именем Conn. (В этом примере можно объявить объект в обработчике событий Load формы. Я делаю его на уровне класса, чтобы упростить его использование в последующих примерах.)

Обработчик события Load формы создает путь к файлу базы данных и использует его для создания объекта OleDbConnection.

Далее код создает объект OleDbCommand, который выбирает поле Title таблицы Books, упорядочивая результат Title . Затем программа выполняет общую последовательность программирования базы данных: откройте соединение, выполните команду, обработайте результаты, закройте соединение.

Программа назначает результат метода ExecuteReader объекта объекта команды объекту OleDbDataReader. Он может использовать этот объект для повторения результатов.

Для обработки результатов программа вводит цикл, который выполняется до тех пор, пока метод Read читателя возвращает true. Цикл while начинается с вызова метода Read для перехода к первой записи в результирующем наборе. После того, как цикл обработал все возвращенные записи, метод Read возвращает false, и цикл завершается.

Когда он извлекает запись, программа добавляет значение поля Title в ListBox.

Источник: http://csharphelper.com/blog/2017/05/initialize-lists-from-databases-without-binding-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector