Какой подход подходит для US State ListBox/DropDownList

Каков наилучший подход для привязки состояния США в WPF (в ListBox или в DropDownList)? Должен ли я использовать DataTable для привязки этих данных? Является ли привязка DataTable к объекту WPF правильным подходом к программированию? Или я должен использовать class/object. Я имею в виду получить данные из базы данных и преобразовать их в общий список объектов, а затем привязать этот список к объекту WPF?

Спасибо,


person usergaro    schedule 28.12.2011    source источник


Ответы (1)


 public class States
    {
        private string name;  
        public string Name    
        {
            get
            {
                return name;
            }
        }

        private string id;  
        public string Id  
        {
            get
            {
                return id;
            }
        }
    }

        List<States> states = new List<States>();

        //get from database


        foreach( states DataSource)
        {
            name = "Alabama";
            id = "1";
        }

        // next Cache list of states for better performance

Много способов... Один из подходов заключается в использовании класса списка. получить из источника данных следующий кеш для повышения производительности.

person Brandon Poole    schedule 28.12.2011
comment
Спасибо Брэндон. Ниже мой код. Я использовал while(rdr.read()) для чтения данных из считывателя и добавления в объект списка. НО это действительно ухудшило производительность. Как я заметил, что производительность ухудшилась? Раньше я связывал свой список состояний с DataTable, а теперь пытался использовать объект List. Я буквально вижу, что это занимает почти две секунды, в то время как с DataTable это было только в мгновение ока. Любое предложение?? - person usergaro; 29.12.2011
comment
ADO.Net имеет много встроенных накладных расходов при чтении из базы данных. Использование DataAdapter, который привязывается к DataSet, который затем привязывается к DataTable, имеет слишком много шагов и низкую производительность. Использование только SQLCommand проще и быстрее и требует меньшего количества подключений. Первый подход проще использовать новичкам. Хорошие стандарты кодирования заключаются в том, чтобы использовать как можно меньше кода, а также подключать и возвращать из базы данных только те данные, которые вам нужны. Но для данных из БД, которые будут использоваться и не изменятся. Рекомендую кешировать. - person Brandon Poole; 30.12.2011
comment
Спасибо за отличное объяснение. Но я все еще в замешательстве. Я понимаю DataAdpater и DataSet, которые я определенно не хочу использовать. Как вы объяснили, я выберу команду SQL, но не понимаю, что вы подразумеваете под ее кэшированием. Не могли бы вы сослаться на какой-нибудь веб-сайт? Означает ли кеш использование какой-либо коллекции?? Пожалуйста посоветуй. - person usergaro; 31.12.2011
comment
Кэширование используется для хранения данных в памяти. Например, допустим, вы хотите отобразить список из 50 штатов на двух отдельных веб-страницах. Вы можете сделать 1 обращение к базе данных и сохранить результаты в кэш-памяти. Поэтому при следующей загрузке страницы вы получите результаты из кеша, а не из базы данных. Это значительно повысит производительность. Нет необходимости обращаться к базе данных снова и снова. Извлечение данных из памяти сервера происходит намного быстрее. - person Brandon Poole; 02.01.2012