powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update БД из DataGridviewComboBoxColumn
3 сообщений из 3, страница 1 из 1
Update БД из DataGridviewComboBoxColumn
    #38229231
SupNatRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется обновить грид по нажатию кнопки. Дело в том, что в гриде имеются comboboxcolumn, с обновлением которых возникает проблема.

Заполнение грида

Код: 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.
 public void GridPrepod()
        {
            try
            {
                string selectPrepod = String.Format(@"SELECT Преподаватель.ID_преподавателя,  Преподаватель.Фамилия, y1.ID_степени, y2.ID_степени
 FROM Преподаватель join Учёная_степень y1
     on Преподаватель.Учёная_степень = y1.ID_степени 
     join Учёная_степень y2 on Преподаватель.Учёная_степень_2 = y2.ID_степени");
                
                da = new SqlDataAdapter(selectPrepod, cnn);
                dt = new DataTable();
 
                da.Fill(dt);
                dgvPrepod.DataSource = dt;
 
                dgvPrepod.Columns["ID_преподавателя"].Visible = false;
                dgvPrepod.Columns["ID_степени"].Visible = false;
 
                //Комбо Учёная степень
                string SelStep1 = String.Format(@"Select ID_степени, Наименование From Учёная_степень");
                daStep1 = new SqlDataAdapter(SelStep1, cnn);
                dtStep1 = new DataTable();
                daStep1.Fill(dtStep1);
                DataGridViewComboBoxColumn cBstep1 = new DataGridViewComboBoxColumn();
 
                cBstep1.DataSource = dtStep1;
                cBstep1.ValueMember = "ID_степени";
                cBstep1.DisplayMember = "Наименование";
                cBstep1.DataPropertyName = "ID_степени";
                cBstep1.HeaderText = "Учёная степень";
 
                dgvPrepod.Columns.Add(cBstep1);
 
                //Комбо Учёная степень 2
                string SelStep2 = String.Format(@"Select ID_степени, Наименование From Учёная_степень");
                daStep2 = new SqlDataAdapter(SelStep2, cnn);
                dtStep2 = new DataTable();
                daStep2.Fill(dtStep2);
                DataGridViewComboBoxColumn cBstep2 = new DataGridViewComboBoxColumn();
 
                cBstep2.DataSource = dtStep2;
                cBstep2.ValueMember = "ID_степени";
                cBstep2.DisplayMember = "Наименование";
                cBstep2.DataPropertyName = "ID_степени1";
                cBstep2.HeaderText = "Учёная степень 2";
 
                dgvPrepod.Columns.Add(cBstep2);
 
             catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }



Обновление грида:
Код: 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.
private void btnChange_Click(object sender, EventArgs e)
        {
            try
            {
                SqlCommand command = new SqlCommand(@"Update Преподаватель 
                Set Фамилия = @family,  Учёная_степень=@step, Учёная_степень_2=@step2
where ID_преподавателя=@id", cnn);
 
                SqlParameter parametr = null;
 
                parametr = new SqlParameter("@family", SqlDbType.VarChar, 50);
                parametr.SourceColumn = "Фамилия";
                command.Parameters.Add(parametr);
 
                command.Parameters.Add("@step", SqlDbType.Int, 4);
                command.Parameters["@step"].Value = dgvPrepod.CurrentRow.Cells[4].Value;
 
                command.Parameters.Add("@step2", SqlDbType.Int, 4);
                command.Parameters["@step2"].Value = dgvPrepod.CurrentRow.Cells[5].Value;
 
                parametr = new SqlParameter("@id", SqlDbType.Int, 4);
                parametr.SourceColumn = "ID_преподавателя";
 
                command.Parameters.Add(parametr);                
 
                command.Connection = cnn;
                da.UpdateCommand = command;
                da.Update(dt);
 
             catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
 
            finally
            {
                cnn.Close();
            }
...
Рейтинг: 0 / 0
Update БД из DataGridviewComboBoxColumn
    #38229296
SupNatRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал пока dgvPrepod.CurrentRow.Cells[11].Value;
Как выбрать строку, где произошло изменение и именно оттуда взять значение для update?
...
Рейтинг: 0 / 0
Update БД из DataGridviewComboBoxColumn
    #38230777
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SupNatRusСделал пока dgvPrepod.CurrentRow.Cells[11].Value;
Как выбрать строку, где произошло изменение и именно оттуда взять значение для update?

зачем?

засунь свой апдейт комманд в адаптер, ещё напиши инсерт...
...и вызывай
Код: c#
1.
da.Update(dt);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Update БД из DataGridviewComboBoxColumn
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]