.NET 4.x Выборка из БД: как заполнить ComboBox элементами из ArrayList - C#

Узнай цену своей работы

Формулировка задачи:

Делаю выборку из БД типа: select name from table, результат возвращаю с помощью ArrayList result. Потом пишу myComboBox.DataSource = result, и количество помещенных значений вроде верно, но вместо самих их все строчки забиты фразой "System.Data.Common.DataRecordInternal" Подскажете, в чем проблема?
Проблема решена. Кому интересно вот код выборки:
 if (dr.HasRows)
                    {
                        foreach (DbDataRecord res in dr)
                            clientsName.Add(dr.GetString(0));
                    }

Решение задачи: «.NET 4.x Выборка из БД: как заполнить ComboBox элементами из ArrayList»

textual
Листинг программы
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
 
namespace MyListControlSample
{
    public class ListBoxSample3 : Form
    {
        private ListBox ListBox1 = new ListBox();
        private Label label1 = new Label();
        private TextBox textBox1 = new TextBox();
 
        [STAThread]
        static void Main()
        {
            Application.Run(new ListBoxSample3());
        }
 
        public ListBoxSample3()
        {
            this.ClientSize = new Size(307, 206);
            this.Text = "ListBox Sample3";
 
            ListBox1.Location = new Point(54, 16);
            ListBox1.Name = "ListBox1";
            ListBox1.Size = new Size(240, 130);
 
            label1.Location = new Point(14, 150);
            label1.Name = "label1";
            label1.Size = new Size(40, 24);
            label1.Text = "Value";
 
            textBox1.Location = new Point(54, 150);
            textBox1.Name = "textBox1";
            textBox1.Size = new Size(240, 24);
 
            this.Controls.AddRange(new Control[] { ListBox1, label1, textBox1 });
 
            // Populate the list box using an array as DataSource.
            ArrayList USStates = new ArrayList();
            USStates.Add(new USState("Alabama", "AL"));
            USStates.Add(new USState("Washington", "WA"));
            USStates.Add(new USState("West Virginia", "WV"));
            USStates.Add(new USState("Wisconsin", "WI"));
            USStates.Add(new USState("Wyoming", "WY"));
            ListBox1.DataSource = USStates;
 
            // Set the long name as the property to be displayed and the short
            // name as the value to be returned when a row is selected.  Here
            // these are properties; if we were binding to a database table or
            // query these could be column names.
            ListBox1.DisplayMember = "LongName";
            ListBox1.ValueMember = "ShortName";
 
            // Bind the SelectedValueChanged event to our handler for it.
            ListBox1.SelectedValueChanged += 
                new EventHandler(ListBox1_SelectedValueChanged);
 
            // Ensure the form opens with no rows selected.
            ListBox1.ClearSelected();
        }
 
        private void InitializeComponent()
        {
        }
 
        private void ListBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (ListBox1.SelectedIndex != -1)
            {
                textBox1.Text = ListBox1.SelectedValue.ToString();
                // If we also wanted to get the displayed text we could use
                // the SelectedItem item property:
                // string s = ((USState)ListBox1.SelectedItem).LongName;
            }
        }
    }
 
    public class USState
    {
        private string myShortName;
        private string myLongName;
 
        public USState(string strLongName, string strShortName)
        {
 
            this.myShortName = strShortName;
            this.myLongName = strLongName;
        }
 
        public string ShortName
        {
            get
            {
                return myShortName;
            }
        }
 
        public string LongName
        {
 
            get
            {
                return myLongName;
            }
        }
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы