Форум программистов, компьютерный форум CyberForum.ru

ComboBox + DataSource (Update) - C#

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.95
SkySnow
8 / 8 / 1
Регистрация: 27.04.2010
Сообщений: 37
22.05.2010, 03:28     ComboBox + DataSource (Update) #1
Всем привет надеюсь, что я ещё не всех на этом форуме достал своими глупыми вопросами, просто реально у вас хороший форум и тут мне первый раз ответили нормально на мой вопрос.


сам вопрос

У меня есть ComboBox (параметр:редактировать запрещено) привязан к моей БД
http://fapomatic.com/1015/_130.jpg
скрин так будет попонятнее

Вообщем мне нужно чтобы после сохранения новой модели в БД, мой ComboBox обновился и в выпадающим списки появилось то, что я в нёс в БД (в данный момент всё это работает так, допустим, добавил новую модель в БД она сохранилась и чтобы она появилась в списки приходиться выходить из программы и запускать её заново)
C#
1
2
 comboBox1.Refresh();
            comboBox1.Update();
простое обновление не помогает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2010, 03:28     ComboBox + DataSource (Update)
Посмотрите здесь:

C# Update
C# update формы
comboBox C#
C# Два Combobox С общим DataSource
Check time between variable update C#
C# comboBox
comboBox на c# C#
Как правильно использовать DataSource? C# .NET 4.x
Создать App.Config для хранения данных для подключения к MS SQL серверу-DataSource и InitialCatalog C#
Автоматический Update одной и той же программы на разных машинах C#
DataGridView.DataSource, формирование таблицы с данными C#
C# После публикации приложения на C# не работает запрос insert и update

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lifestyle
Mobile Developer
 Аватар для lifestyle
231 / 227 / 4
Регистрация: 10.05.2009
Сообщений: 917
22.05.2010, 09:01     ComboBox + DataSource (Update) #2
Если на дот нет платформе пишешь, то нужно кинуть на страничку твою SqlDataSource настроить ее на работу с твоей БД, после чего в свойствах comboBox'a в конфиге выбираешь не БД а SqlDataSource который создал.Теперь после выполнения Sql update команды дописываешь yourSqlDataSource.DataBind(); должно работать.
Вслучае с winForms делаешь тоже самое, только с DataSet ili DataAdapter не помню точно
nio
 Аватар для nio
5891 / 3294 / 199
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.05.2010, 10:27     ComboBox + DataSource (Update) #3
SkySnow, если ты сам не писал код на загрузку данных в комбобокс, значит это было сделано автоматом. Посмотри в событии Form_Load для окна, в котором расположен твой выпадающий список. Там должен вызываться метод Fill(...), который загружает данные из БД для соответствующего адаптера.
Выглядит приблизительно так
C#
1
2
// TODO: This line of code loads data into the 'mobileServiceDataSet.Warranty' table. You can move, or remove it, as needed.
                this.warrantyTableAdapter.Fill(this.mobileServiceDataSet.Warranty);
Скопируй эту строку в нужное место и будет тебе счастье.
SkySnow
8 / 8 / 1
Регистрация: 27.04.2010
Сообщений: 37
22.05.2010, 19:27  [ТС]     ComboBox + DataSource (Update) #4
SkySnow, если ты сам не писал код на загрузку данных в комбобокс, значит это было сделано автоматом. Посмотри в событии Form_Load для окна, в котором расположен твой выпадающий список. Там должен вызываться метод Fill(...), который загружает данные из БД для соответствующего адаптера.
Сам код не писал,делал конструктором вот так
http://fapomatic.com/1015/1_321.jpg

да есть вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 private void Form2_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'tmpDataSet1.tovar' table. You can move, or remove it, as needed.
            this.tovarTableAdapter1.Fill(this.tmpDataSet1.tovar);
            // TODO: This line of code loads data into the 'tmpDataSet1.tovar' table. You can move, or remove it, as needed.
            this.tovarTableAdapter1.Fill(this.tmpDataSet1.tovar);
            // TODO: This line of code loads data into the 'tmpDataSet.nakladnaia' table. You can move, or remove it, as needed.
            this.nakladnaiaTableAdapter.Fill(this.tmpDataSet.nakladnaia);
            // TODO: This line of code loads data into the 'tmpDataSet.zavoz_tovara' table. You can move, or remove it, as needed.
            this.zavoz_tovaraTableAdapter.Fill(this.tmpDataSet.zavoz_tovara);
            // TODO: This line of code loads data into the 'tmpDataSet.size' table. You can move, or remove it, as needed.
            this.sizeTableAdapter.Fill(this.tmpDataSet.size);
            // TODO: This line of code loads data into the 'tmpDataSet.color' table. You can move, or remove it, as needed.
            this.colorTableAdapter.Fill(this.tmpDataSet.color);
            // TODO: This line of code loads data into the 'tmpDataSet.model' table. You can move, or remove it, as needed.
            this.modelTableAdapter.Fill(this.tmpDataSet.model);
            // TODO: This line of code loads data into the 'tmpDataSet.firma' table. You can move, or remove it, as needed.
            this.firmaTableAdapter.Fill(this.tmpDataSet.firma);
            // TODO: This line of code loads data into the 'tmpDataSet.tovar' table. You can move, or remove it, as needed.
            this.tovarTableAdapter.Fill(this.tmpDataSet.tovar);
            // TODO: This line of code loads data into the 'tmpDataSet.group_tovar' table. You can move, or remove it, as needed.
            this.group_tovarTableAdapter.Fill(this.tmpDataSet.group_tovar);
а если не секрет где это нужное место? вы имели ввиду в кнопку сохранить это запихнуть надо?

Добавлено через 9 минут
Всё разобрался,nio вы мне очень сильно помогли Спасибо!

Добавлено через 14 минут
вылезла новая проблема не пойму что случилось((( вчера вроде всё работало
вот форма
http://fapomatic.com/1015/3_162.jpg

вот код кнопки сохранения данных в БД
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
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                long cont = Convert.ToInt64(numericUpDown1.Value);
                DataClasses1DataContext dc = new DataClasses1DataContext();
                try
                {
                    var frm = (from f in dc.tovars
                               where f.Firma_ID == Convert.ToInt32(comboBox1.SelectedValue) &&
                               f.Model_ID == Convert.ToInt32(comboBox2.SelectedValue) &&
                               f.Color_ID == Convert.ToInt32(comboBox3.SelectedValue) &&
                               f.Size_ID == Convert.ToInt32(comboBox4.SelectedValue)
                               select new { idd = f.ID, tot = f.Total_tovar }).SingleOrDefault();
 
                    sell sl = new sell();
                    sl.total_sell = Convert.ToInt64(numericUpDown1.Value);
                    sl.price_sell = Convert.ToInt64(textBox1.Text);
                    sl.data_sell = DateTime.Now;
                    sl.tovar_ID = frm.idd;
                    var upd = from u in dc.tovars
                              where u.Firma_ID == Convert.ToInt32(comboBox1.SelectedValue) &&
                              u.Model_ID == Convert.ToInt32(comboBox2.SelectedValue) &&
                              u.Color_ID == Convert.ToInt32(comboBox3.SelectedValue)
                              select u;
                    cont = Convert.ToInt64(frm.tot) - cont;
 
                    foreach (var up in upd)
                    {
                        up.Total_tovar = cont;
                    }
                    dc.sells.InsertOnSubmit(sl);
                    dc.SubmitChanges();
                    comboBox1.Text = "";
                    comboBox2.Text = "";
                    comboBox3.Text = "";
                    comboBox4.Text = "";
                    textBox1.Clear();
 
                }
                catch
                {
                    label4.Text = "Такой товар не найден на складе магазина";
                }
            }
            catch
            {
                label4.Text = "Такого товара нет в наличи";
            }
 
            //label4.Text = Convert.ToString(comboBox1.SelectedValue);
        }
после нажатия на кнопку данные о продажи товара должны записаться в накладную,вчера пробовал вроде всё работал сейчас не хочет(
кто,что скажет?

Добавлено через 1 час 46 минут
Всё вроде совсем разобрался,пока вопросов нет!
ещё раз всем Спасибо
magistr4815
-5 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 29
06.01.2017, 16:05     ComboBox + DataSource (Update) #5
Я вот так делал с комбо боксом, тоже долго сучился с рефрешами абдейтами, но это не помогало.

comboBox1.DataSource = null; // сначала говорим ему что данных нет
comboBox1.DataSource = list; // а потом снова переприсваиваем
Yandex
Объявления
06.01.2017, 16:05     ComboBox + DataSource (Update)
Ответ Создать тему
Опции темы

Текущее время: 02:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru