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

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.95
SkySnow
8 / 8 / 1
Регистрация: 27.04.2010
Сообщений: 37
#1

ComboBox + DataSource (Update) - C#

22.05.2010, 03:28. Просмотров 8033. Ответов 4
Метки нет (Все метки)

Всем привет надеюсь, что я ещё не всех на этом форуме достал своими глупыми вопросами, просто реально у вас хороший форум и тут мне первый раз ответили нормально на мой вопрос.


сам вопрос

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

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

Не получается сделать Update (Update requires a valid InsertCommand) - C#
Не получается сделать Update выдаёт ошибку, что делаю не так? В таблице только одно поле, оно строковое. public void...

Ошибка при Update "Update requires a valid InsertCommand when passed DataRow collection with new rows" - C#
Доброго времени суток! Я в этом всем новичек и поэтому совсем не могу понять в чем ошибка. В общем, имеется вот такой код: ...

DataSource до layout - C#
Сейчас не на месте, код привести не могу. Суть такая: Есть наследник комбобокса Combo, его метод Load загружает таблицу из БД в него через...

BindingSource, DataSource - C#
Добавляю BindingSource в конструкторе, Выбираю DataSource, когда добавляю подключение при выборе БД- вылезает ошибка: "Этот файл сейчас...

BindingSource не понимает DataSource - C#
Здравствуйте. Для доступа к БД своего проекта пользуюсь LINQ to SQL Имеется public static List<megapolis.User> UsersList = new...

Изменение уже созданного DataSource - C#
Здравствуйте уважаемые форумчане! Столкнулся с проблемой, которую почему то решить не получается (( Проблема в следующем, имею базу...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lifestyle
Mobile Developer
232 / 228 / 4
Регистрация: 10.05.2009
Сообщений: 917
22.05.2010, 09:01 #2
Если на дот нет платформе пишешь, то нужно кинуть на страничку твою SqlDataSource настроить ее на работу с твоей БД, после чего в свойствах comboBox'a в конфиге выбираешь не БД а SqlDataSource который создал.Теперь после выполнения Sql update команды дописываешь yourSqlDataSource.DataBind(); должно работать.
Вслучае с winForms делаешь тоже самое, только с DataSet ili DataAdapter не помню точно
0
nio
5919 / 3322 / 200
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.05.2010, 10:27 #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);
Скопируй эту строку в нужное место и будет тебе счастье.
3
SkySnow
8 / 8 / 1
Регистрация: 27.04.2010
Сообщений: 37
22.05.2010, 19:27  [ТС] #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 минут
Всё вроде совсем разобрался,пока вопросов нет!
ещё раз всем Спасибо
1
magistr4815
-4 / 1 / 0
Регистрация: 24.03.2012
Сообщений: 58
06.01.2017, 16:05 #5
Я вот так делал с комбо боксом, тоже долго сучился с рефрешами абдейтами, но это не помогало.

comboBox1.DataSource = null; // сначала говорим ему что данных нет
comboBox1.DataSource = list; // а потом снова переприсваиваем
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2017, 16:05
Привет! Вот еще темы с ответами:

Cоответствие datagridview и DataSource DataTable - C#
Здравствуйте, уважаемые участники форума. Помогите разобраться... Есть БД на SQL Server 2005 и приложение на C#, которое с этой БД...

Gridview без использования DataSource - C#
Здравствуйте. Подскажите пожалуйста! как в GridView указать источник данных не DataSource а запрос из бд ?

DataSource и связи между таблицами - C#
Доброго всем времени суток... Собственно возникла такая проблема с реализацией вывода информации из базы данных. У меня создано...

Странности с DataSource Visual Studio - C#
Добавил в проект источник данных и обнаружил такую вот вещь: При просмотре полей таблицы, там помимо, собственно, её полей есть ещё другая...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2017, 16:05
Ответ Создать тему
Опции темы

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