Member 14576229 Ответов: 1

Использование выделения из выпадающего списка для отображения другого столбца базы данных в текстовом поле


У меня есть combobox, прикрепленный к базе данных SQL, которая извлекает нужные мне данные, однако я хочу, чтобы он отображал другой столбец в той же строке БД в текстовом поле на основе того, что было выбрано в Combobox.

Мой combobox работает отлично, отображая всю необходимую мне информацию. Просто нужно отобразить 4-й столбец в текстовом поле на основе выбора combobox.

Разбивка БД: внутри моей таблицы у меня есть 4 столбца:
Имя
Направление
номер
IP-адрес

При выборе элемента в моем combobox я хочу, чтобы он отображал IP-адрес в текстовом поле с именем textbox1.


Спасибо,

Что я уже пробовал:

void Fillcombo()
        {
            string constring = "Data Source=DATABASEHERE;Initial Catalog=HERE;User ID=USERIDHERE;password=PASSWORDHERE";
            string Query = "select * from TABLEHERE;";
            SqlConnection conDataBase = new SqlConnection(constring);
            SqlCommand command = new SqlCommand(Query, conDataBase);
            try
            {
                conDataBase.Open();
                SqlDataReader myReader = command.ExecuteReader();

                while (myReader.Read())
                {
                    string lName = myReader["Name"].ToString();
                    string dirName = myReader["Direction"].ToString();
                    string midName = myReader["number"].ToString();
                    comboBox2.Items.Add(lName + " " + dirName + " " + midName);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


private void ComboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            string constring = "Data Source=DATABASEHERE;Initial Catalog=HERE;User ID=USERIDHERE;password=PASSWORDHERE";
            string Query = "select * from TABLEHERE where Name='" + comboBox2.SelectedValue + "'";
            SqlConnection conDataBase = new SqlConnection(constring);
            SqlCommand command = new SqlCommand(Query, conDataBase);
            try
            {
                conDataBase.Open();
                SqlDataReader myReader = command.ExecuteReader();

                while (myReader.Read())
                {
                    string ipName = myReader["ipaddress"].ToString();
                    textBox1.Text = ipName;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

1 Ответов

Рейтинг:
2

Gerry Schmitz

Почему вы возвращаетесь в базу данных за "значением", когда вы уже извлекаете "ключи"?

Вы создаете "коллекцию" (List< gt;) со всеми 4 полями, загружаете поле со списком и используете таблицу для поиска; хотя почему все 4 поля не могут быть в поле со списком или сетке, остается загадкой.


Member 14576229

Я новичок в C#, поэтому все еще пытаюсь понять, как все это работает. Все 4 поля могут быть в поле со списком, но я хочу, чтобы IP-адрес отображался в текстовом поле, чтобы я мог скопировать и вставить его для более легкого подключения RDP.

Я тоже не думал, что это правильно для части текстового поля, чтобы подключиться обратно к БД, но, как я уже сказал, Я новичок в C# и мне было трудно понять это.