Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Привязка (заполнение) элементов ListBox объектом SqlDataReader



В данной небольшой статье рассмотрим практический пример привязки элемента ListBox к таблице данных sql-server используя непосредственный объект чтения записей таблицы - SqlDataReader. В одной из прошлых статей мы поговорили о вариантах раскрашивания элементов ListBox. В данной же сосредоточимся на самой процедуре заполнения данного контрола. О том, как выполнять заполнение ListBox из xml-файла рассказывается в статье.
Немного пояснений.

Необходимо из представленной ниже таблицы выбрать записи и их определенными полями заполнить контрол ListBox:

ListBox привязка элементов из Sql server

В нашем случае таблица имеет всего два поля, хотя это не имеет никакого значения.

string connectionString = "MyConnectionString";
SqlConnection cn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("SELECT * FROM MyTable", cn);

MyListBox.Items.Clear();

cn.Open();
SqlDataReader dataReader = cmd.ExecuteReader();

if (dataReader.HasRows)
{
    MyListBox.BeginUpdate();
    while (dataReader.Read())
    {
    	MyListBox.Items.Add(dataReader.GetString(1));
    }
    MyListBox.EndUpdate();
}

Dr.Close();

В начале мы настроили объекты соединения и команды выборки. Затем, используя объект SqlDataReader, заполняем данными из полученных записей элементы ListBox. Обязательно перед началом заполнения контрола необходимо его почистить, иначе новые элементы просто добавятся к уже существующим.

Примечательным является строка MyListBox.BeginUpdate();

Дело в том, что используя метод BeginUpdate мы повышаем производительность при добавлении новых элементов в ListBox, запрещая перерисовку в элементе управления вплоть до вызова метода EndUpdate. Таким образом, наш контрол отрисуется ТОЛЬКО после завершения наполнения его элементами. Естественно для выполнения отрисовки всех элементов контрола мы вызываем метод MyListBox.EndUpdate();

Для избежания необходимости управления режимом добавления элементов в ListBox, правильнее было бы ридером предварительно наполнить записями из таблицы некоторый массив, а уж потом весь этот массив передать в метод MyListBox.Items.AddRahge(someMass).

Если же мы хотим наблюдать в элементах ListBox значения первичного ключа, то строку

MyListBox.Items.Add(dataReader.GetString(1));

меняем на

MyListBox.Items.Add(dataReader.GetGuid(0));

Кроме данного подхода, для автоматического заполнения ListBox мы можем использовать коллекции. Остановимся на обычном ArrayList, хотя это не принципиально. Создадим метод, возвращающий коллекцию записей ArrayList, содержащую записи типа DbDataRecord:

public ArrayList GetData()
{
  ...
  ArrayList allData = new ArrayList();
  SqlDataReader dataReader = cmd.ExecuteReader();   
  
  if (dataReader.HasRows)
  {
     foreach (DbDataRecord rezult in dataReader)
     {
        allData.Add(rezult);
     }
  }
  return allData;
}

Теперь, где-нибудь в коде следует привязать наш ListBox к данной коллекции:

ArrayList allData_ = GetData();
MyListBox.DataSource = allData_;

Но, главное теперь для MyListBox назначить свойства для отображения значения элементов и их реальных данных:


MyListBox.DisplayMember = "Name";
MyListBox.ValueMember = "ID";

Таким нехитрым образом мы назначили для ListBox поля из таблицы БД для отображения данных в элементах контрола и их реальных значений для простого дальнейшего манипулирования.



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        без имени    19.06.2010 13:25:22
        

Спасибо. Действительно это то, что искал. Очень кратко и точно. Побольше такого типа статей, без лишних разъяснений. Спасибо!


        погугливши    25.10.2010 13:13:26
        

И мое спасибо!




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок