Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
1

Поиск по БД из textBox, combobox

07.01.2015, 03:33. Просмотров 3136. Ответов 27
Метки нет (Все метки)

Объясните пожалуйста как показать данные столбца из таблицы через Combobox, смотрела разные сайты, там показано как сделать через свойства (DataSource, DisplayMember), при запуске форм в Combobox'ах ничего нет. И такой вопрос: возможно ли выбрав значения в Combobox занести их для наглядности в Textbox?

Может посоветуете что-то другое.

П.С. нужно из разных таблиц выбрать данные и отправить на печать. Есть таблицы Врач, Пациент и Талон. Нужны данные Фамилия_врача и кабинет из таб.Врач, Фамилия_пациент из таб.Пациент, Код_талона и Время_талона из таб.Талон.

Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2015, 03:33
Ответы с готовыми решениями:

Поиск по БД из textBox, combobox
Подскажите пж код или ссылки для поиска данных в БД. Использую данный код CSHARP] private void...

Поиск по DataGrid из внутренних TextBox/ComboBox. Mvvm
Доброго дня всем! Очень интересует как поместить внутрь DataGrid несколько TextBox'ов или...

DataGridView. Поиск в столбце отмеченном в ComboBox, по значению в TextBox
Доброго времени суток. Возникла проблема. Есть 4 элемента. dataGridView , ComboBox, TextBox и...

Из comboBox в Textbox
Есть ComboBox в котором содержатся ID`ы из Access(не важно откуда, но все же), мне необходим что-бы...

comboBox и textBox
как сделать чтобы выбранный в comboBox передал текст в textBox?

27
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 02:21 2
Цитата Сообщение от Jool Посмотреть сообщение
как показать данные столбца из таблицы через Combobox
Нужно связать Combobox через меню "Combobox Задачи" (стрелочка в правом верхнем углу элемента на форме) с источником данных, при этом в коде должно автоматически появиться:
C#
1
2
3
4
5
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "_1DataSet.Таблица1". При необходимости она может быть перемещена или удалена.
            this.таблица1TableAdapter.Fill(this._1DataSet.Таблица1);
        }
тогда при открытии формы содержимое будет однозначно отображаться.
Цитата Сообщение от Jool Посмотреть сообщение
возможно ли выбрав значения в Combobox занести их для наглядности в Textbox?
Почему нет? Поставьте на событие выбора записи в Combobox код:
C#
1
2
3
4
private void ComboBox1_SelectedValueChanged(object sender, EventArgs e)
{
    textBox1.Text = comboBox1.SelectedValue.ToString();
}
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 11:42  [ТС] 3
А чтобы по одному выбранному значению в combobox, чтобы заполнялись несколько Textbox? Их уже надо делать условием или через селект?
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 11:50 4
Одним и тем же значением? Просто пишите все текстбоксы подряд:
C#
1
2
3
4
5
6
7
private void ComboBox1_SelectedValueChanged(object sender, EventArgs e)
{
    textBox1.Text = comboBox1.SelectedValue.ToString();
    textBox2.Text = comboBox1.SelectedValue.ToString();
    ...
    textBoxN.Text = comboBox1.SelectedValue.ToString();
}
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 11:54  [ТС] 5
Но нужно чтобы заполнялись разными значениями из таблицы:
есть Фамилия врача, ИД врача и кабинет.
При выборе Фамилии врача должны заполняться Textbox1 на ИД и Textbox2 на кабинет.
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 12:07 6
Это уже другая история . Нужно соединиться с БД и сделать SQL-запрос SELECT, результаты которого вывести в текстбоксы. Если вам это ни о чем не говорит, то тогда хотелось бы увидеть БД (можно выложить файл), а то в П.С. не было ИД врача, а тут вдруг появилось.
П.С. нужно из разных таблиц выбрать данные и отправить на печать. Есть таблицы Врач, Пациент и Талон. Нужны данные Фамилия_врача и кабинет из таб.Врач, Фамилия_пациент из таб.Пациент, Код_талона и Время_талона из таб.Талон.
И лучше сразу весь список желаний
1
andrey-m11
18 / 18 / 6
Регистрация: 25.03.2013
Сообщений: 110
08.01.2015, 16:32 7
набросал тут.. попробуй ... должно работать...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//--------------------------------------------------//
        public void SQLOpen()// открывает базу данных
        {
            sqlConnect = new SqlConnection("Тут строка подключения к БД");
            sqlConnect.Open();
        }
//----------------------------------------------------------------------------//
        public SqlCommand SQLcomm(string commandText) //Выполняет запросы, требуется ввод SQL запроса
        {
             SQLOpen();
            sqlComm = new SqlCommand();
            sqlComm.CommandText = commandText;
            sqlComm.Connection = sqlConnect;
            return sqlComm;
        }
//----------------------------------------------------------------------//
        public void SQLClose() //Закрывает подключение к базе данных
        {
            sqlConnect.Close();
        }
//------------------------------------------------------------------------------------------//
        public string TextBoxText(string tabl, string date, string Where, int Situation)//возвращает данные по запросу..(таблица, столбец с данными, столбец Id поиска, id строки)
        {
            string text = "";
            SqlDataReader reader = SQLcomm("select  replace("+date+",' ','')AS text from " + tabl + " where " + tabl + "." + Where + "= '" + Situation + "'").ExecuteReader();
            while (reader.Read())
            {
                text = (reader["text"].ToString());
            }
          SQLClose();
 
            return text;
        }
//-----------------------------------------------------------------------------------------------//
 
             textBox1.Text = TextBoxText("tabl", "date", "where", situation);//результат
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 16:43  [ТС] 8
Как можно прикрепить свое приложение или проект, чтобы показать здесь.
Я нашла другой выход, через несколько комбобоксов добавить в текст.
Но теперь есть такой вопрос: как добавить данные из С# в Excel.
Пока медленно разбираюсь.
Спасибо огромное.

Вот моя почта
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 16:54 9
Цитата Сообщение от Jool Посмотреть сообщение
Как можно прикрепить свое приложение или проект, чтобы показать здесь.
Нажать кнопку "Ответить" и в меню появившегося окна нажать скрепку , дальше будет понятно.
Цитата Сообщение от Jool Посмотреть сообщение
Я нашла другой выход, через несколько комбобоксов добавить в текст.
Тоже вариант
Цитата Сообщение от Jool Посмотреть сообщение
Но теперь есть такой вопрос: как добавить данные из С# в Excel
Посмотрите по этой ссылке, я по ней учился:
http://wladm.narod.ru/C_Sharp/comexcel.html
Цитата Сообщение от Jool Посмотреть сообщение
Вот моя почта
Что вам написать?
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 17:11  [ТС] 10
можно связать дата календаря с днем недели (в БД есть таблица дней недели: пн, вт, ср, чт, пт). Чтобы при выборе любой даты день ставился сам?
0
Изображения
 
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 17:32  [ТС] 11
chumich, можете посмотреть код. Смысл заключается в том, что есть форма с текстовыми полями и кнопкой добавить. Нашла в интернете код для "Защита от дурака", по примеру подделала под своб форму, но так как там был только фрагмент кода, то бишь выдает ошибки, что нет определения типов и расширений. Дальнейший поиск улаживания этих ошибок, запутал меня еще больше.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
private void Form2_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "hospitalDataSet1.Patient". При необходимости она может быть перемещена или удалена.
            this.patientTableAdapter.Fill(this.hospitalDataSet1.Patient);
         
        this.button1.Enabled = false;
 
            this.textBox1.Tag = false;
            this.textBox2.Tag = false;
            this.textBox3.Tag = false;
            this.textBox4.Tag = false;
            this.textBox5.Tag = false;
            this.textBox6.Tag = false;
            this.textBox7.Tag = false;
            this.textBox8.Tag = false;
            this.textBox9.Tag = false;
            this.textBox10.Tag = false;
 
            this. textBox1.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox2.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox3.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox4.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox5.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox6.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox7.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox8.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox9.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
            this. textBox10.Validating += new CancelEventHandler(this.txtBoxEmpty_Validating);
 
            this.textBox1.TextChanged += new EventHandler(txtBox_TextChanged);
           this.textBox2.TextChanged += new EventHandler(txtBox_TextChanged);
            this.textBox3.TextChanged += new
 EventHandler(txtBox_TextChanged);
this.textBox4.TextChanged += new 
EventHandler(txtBox_TextChanged);
this.textBox5.TextChanged += new
 EventHandler(txtBox_TextChanged);
this.textBox6.TextChanged += new 
EventHandler(txtBox_TextChanged);
this.textBox7.TextChanged += new 
EventHandler(txtBox_TextChanged);
this.textBox8.TextChanged += new 
EventHandler(txtBox_TextChanged);
this.textBox9.TextChanged += new
 EventHandler(txtBox_TextChanged);
this.textBox10.TextChanged += new 
EventHandler(txtBox_TextChanged);
}
 
               private void button1_Click(object sender, EventArgs e)
        {
            string output;
 
            output = "Код пациента " + this. textBox1.Text + "rn";
            output = "Фамилия" + this. textBox2.Text + "rn";
            output = "Имя " + this. textBox3.Text + "rn";
            output = "Отчество " + this. textBox4.Text + "rn";
            output = "Дата рождения " + this. textBox5.Text + "rn";
            output = "Паспорт " + this. textBox6.Text + "rn";
            output = "Полис " + this. textBox7.Text + "rn";
            output = "СНИЛС " + this. TextBox8.Text + "rn";
            output = "Адрес " + this. textBox9.Text + "rn";
            output = "Телефон " + this. textBox10.Text + "rn";
                       this.txtOutput.Text = output;
        }
 
        private void ValidateAll()
        {
            this.button1.Enabled = ((bool)(this.textBox1.Tag) &&
                                   (bool)(this. textBox2.Tag) &&
                                   (bool)(this. textBox3.Tag) &&
                                   (bool)(this. textBox4.Tag) &&
                                   (bool)(this. textBox5.Tag) &&
                                   (bool)(this. textBox6.Tag) &&
(bool)(this. textBox7.Tag) &&
(bool)(this. textBox8.Tag) &&
(bool)(this. textBox9.Tag) &&
(bool)(this. textBox10.Tag));
        }
}
    }
}


просмотрела множество интернет страниц по данному вопросу, кто-то предлагает использовать фокус через свойства, его не поняла.
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 17:56 12
Цитата Сообщение от Jool Посмотреть сообщение
можно связать дата календаря с днем недели
Должно быть что-то вроде этого:
C#
1
2
3
DateTime dt = new DateTime();
dt = combox№.Value // № того в котором выбирается дата
textbox.Text = dt.DayOfWeek // если день приема всегда появляется автоматически, то лучше текстбокс
только во всем этом проблема: правильно сопоставить форматы данных и дат, и посмотрите еще про культуры:
http://msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx
http://msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx

Цитата Сообщение от Jool Посмотреть сообщение
chumich, можете посмотреть код.
Код очень большой . Поясните еще раз: задача в чем заключается? Что делает кнопка: добавляет текстбоксы или они изначально все есть?
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 18:25  [ТС] 13
Код очень большой . Поясните еще раз: задача в чем заключается? Что делает кнопка: добавляет текстбоксы или они изначально все есть?
чтобы кнопка не нажималась без заполнения полей

Добавлено через 18 минут

Цитата Сообщение от chumich Посмотреть сообщение
Должно быть что-то вроде этого:
Код C#
1
2
3
DateTime dt = new DateTime();
dt = combox№.Value // № того в котором выбирается дата
textbox.Text = dt.DayOfWeek // если день приема всегда появляется автоматически, то лучше текстбокс
мой получается такой:
C#
1
2
3
4
5
6
 private void dateTimePicker1_ValueChanged(object sender, EventArgs e) // дата дня соединятеся с днем недели
        {
           DateTime dt = new DateTime();
           dt = dateTimePicker1.Value; // № того в котором выбирается дата
        comboBox7.Text = dt.DayOfWeek;
        }
пишет что нельзя dayofweek преобразовать в string
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 18:28 14
Цитата Сообщение от Jool Посмотреть сообщение
чтобы кнопка не нажималась без заполнения полей
Ну нажать то ее не запретишь А чтобы ничего не произошло можно наверно так сделать:
C#
1
2
3
4
5
6
7
8
9
10
11
private void button1_Click(object sender, EventArgs e)
{
  If (textBox1.Text = "" ||  textBox2.Text = "" || ... ) // вместо "..." все остальные текстбоксы = ""
  {
    MessageBox.Show ("Заполните все поля");
  }
  else
  {
    // основной код события
  }
}
Добавлено через 3 минуты
Цитата Сообщение от Jool Посмотреть сообщение
пишет что нельзя dayofweek преобразовать в string
C#
1
comboBox7.Text = dt.DayOfWeek.ToString();
или
C#
1
comboBox7.Text = Convert.ToString(dt.DayOfWeek);
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 18:44  [ТС] 15
Цитата Сообщение от chumich Посмотреть сообщение
Код C#
1
2
3
4
5
6
7
8
9
10
11
private void button1_Click(object sender, EventArgs e)
{
* If (textBox1.Text = "" || *textBox2.Text = "" || ... ) // вместо "..." все остальные текстбоксы = ""
* {
* * MessageBox.Show ("Заполните все поля");
* }
* else
* {
* * // основной код события
* }
}
Не воспринимает:
1) две параллельные палки ||
2) операторы
3) после else требует точку с запятой

При перечислении текстбоксов можно использовать запятую? Писать в линейку или можно столбец?
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 18:57 16
Цитата Сообщение от Jool Посмотреть сообщение
Не воспринимает:
1) две параллельные палки ||
2) операторы
3) после else требует точку с запятой
При перечислении текстбоксов можно использовать запятую? Писать в линейку или можно столбец?
|| - это условное ИЛИ, вместо него запятую, насколько я знаю, нельзя.
И почему он не воспринимает операторы и требует точку с запятой не понятно
А if с маленькой или заглавной буквы? Нужно с маленькой.
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 18:59  [ТС] 17
Цитата Сообщение от chumich Посмотреть сообщение
Сообщение от Jool
пишет что нельзя dayofweek преобразовать в string
Код C#
1
comboBox7.Text = dt.DayOfWeek.ToString();
или
Код C#
1
comboBox7.Text = Convert.ToString(dt.DayOfWeek);


все сделалось, только названия дней на английсокм, а в бд на русском, но это решаемо

Добавлено через 21 секунду
Цитата Сообщение от chumich Посмотреть сообщение
А if с маленькой или заглавной буквы? Нужно с маленькой.
изменяла на маленькую тоже не хотел
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 19:14 18
Цитата Сообщение от Jool Посмотреть сообщение
все сделалось, только названия дней на английсокм, а в бд на русском, но это решаемо
Это из-за культуры, то что я и говорил.
Цитата Сообщение от Jool Посмотреть сообщение
изменяла на маленькую тоже не хотел
попробую проверить у себя

Добавлено через 7 минут
Моя ошибка, никак к C# не привыкну. Нужны двойные равенства в if:
C#
1
if (textBox1.Text == "" ||  textBox2.Text == "" || ... )
1
Jool
0 / 0 / 0
Регистрация: 07.01.2015
Сообщений: 39
08.01.2015, 19:34  [ТС] 19
Цитата Сообщение от chumich Посмотреть сообщение
comboBox7
возвращаемся к комбо: такая проблема

выбираю в комбо код специальности в одной таблице и хочу чтобы по этому поиску в другой комбо выбрались данные.

Таблица Спец состоит из код_спец и название. Код_спец включается в FK ключом в Таблицу Врач.
Если для комбобокса код_спец Выбрать таблицу Спец, а в Отобразить член и Значение члена поставить Код_спец, то он просто выбирает значения из таблице. А если для этого же комбо выбрать таблицу Врач, то он выбирает из это таблице, при этом считывает и повторяющиеся коды специальности

Добавлено через 11 минут
Цитата Сообщение от Jool Посмотреть сообщение
Сообщение от chumich
И такой вопрос: при изменении данных в DataGridView, они буду меняться в самой БД или это надо прописывать
0
chumich
1483 / 845 / 280
Регистрация: 20.12.2014
Сообщений: 2,164
08.01.2015, 20:00 20
Цитата Сообщение от Jool Посмотреть сообщение
возвращаемся к комбо: такая проблема
хотя бы для морального удовлетворения сообщите результат "укрощения параллельных палок"
Цитата Сообщение от Jool Посмотреть сообщение
при изменении данных в DataGridView, они буду меняться в самой БД или это надо прописывать
Попробуйте на практике - зависит от того как вы связывали грид с БД.
Цитата Сообщение от Jool Посмотреть сообщение
Таблица Спец состоит из код_спец и название. Код_спец включается в FK ключом в Таблицу Врач.
Если для комбобокса код_спец Выбрать таблицу Спец, а в Отобразить член и Значение члена поставить Код_спец, то он просто выбирает значения из таблице. А если для этого же комбо выбрать таблицу Врач, то он выбирает из это таблице, при этом считывает и повторяющиеся коды специальности
Вы так быстро жонглируете комбобоксами, таблицами и членами, что без схемы данных сложно уследить за ходом вашей мысли Можно как то "разложить по полочкам", что вы попробовали сделать, и что хотелось получить? И фрагмент схемы данных со связью таблиц, хотя бы в четком письменном изложении .
1
08.01.2015, 20:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2015, 20:00

TextBox, ComboBox и данные
Имеется: <CheckBox Name="CheckBoxLimit" Grid.Row="1" ...

ComboBox превратить в TextBox
Доброго времени суток. Подскажите можно ли в WPF combobox превратить в textbox, а конкретно чтоб...

Гибрид textbox и combobox
Всем привет! Вчера сидел ломал голову как мне описать события комбобокса и текстбокса вот в такой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru