Обновить dataGridView на Form1 при закрытии Form2

224
10 декабря 2017, 09:14

Нужно чтобы после закрытия формы dataGridView на главной форме обновляла данные, помогите пожалуйста.

Получение данных из базы и вставка их в dataGridView

private void button1_Click(object sender, EventArgs e)
    {
        conn = new SqlConnection();
        conn.ConnectionString = connectionString;
        SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT Kod AS [Код кампании], Name AS [Название кампании], " +
            "ShortName AS [Краткое название кампании] FROM Company", conn);      
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        dataGridView1.DataSource = ds.Tables[0].DefaultView;
        conn.Dispose();
    }

Вызов второй формы для работы с данными таблицы Company

  private void button8_Click(object sender, EventArgs e)
    {
        Company Form2 = new Company();
        Form2.ShowDialog();
    }

Работа с таблицей и закрытие ее

 private void button1_Click(object sender, EventArgs e)
    {
        if (Button_Press_Enter() == true)
        {
            try
            {
                int Kod = int.Parse(this.textBox1.Text);
                string Nazvanie = Convert.ToString(this.textBox2.Text);
                string KratkoeNazvanie = Convert.ToString(this.textBox3.Text);
                conn = new SqlConnection();
                conn.ConnectionString = connectionString;
                conn.Open();
                SqlCommand myCommand = conn.CreateCommand();
                myCommand.CommandText = "INSERT INTO " + "Company (Kod, Name, ShortName)" +
                    "VALUES (@Kod, @Name, @ShortName)";
                myCommand.Parameters.Add("@Kod", SqlDbType.Int, 4);
                myCommand.Parameters["@Kod"].Value = Kod;
                myCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 30);
                myCommand.Parameters["@Name"].Value = Nazvanie;
                myCommand.Parameters.Add("@ShortName", SqlDbType.NVarChar, 30);
                myCommand.Parameters["@ShortName"].Value = KratkoeNazvanie;
                int Uspex = myCommand.ExecuteNonQuery();
                if (Uspex != 0)
                {
                    MessageBox.Show("Изменения внесены. ", "Изменениие записи. ");
                }
                else
                {
                    MessageBox.Show("Изменения не внесены. ", "Изменениие записи. ");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                textBox1.Clear();
                textBox2.Clear();
                textBox3.Clear();
                conn.Close();
            }
        }
    }
Answer 1

Если особо не заморачиваться, то можно так:

  private void button8_Click(object sender, EventArgs e)
    {
        Company Form2 = new Company();
        Form2.ShowDialog();
        button1_Click(sender, e);
    }

Это сработает, только если форма открывается в диалоговом режиме. Иначе, код продолжит выполняться, не дожидаясь её закрытия.

READ ALSO
Не удается подключить system.web.optimization

Не удается подключить system.web.optimization

Как это можно понять??

179
Как разово отменить выполнение события

Как разово отменить выполнение события

Задача связать 2 способа задания размера окна

200
Таймер отсчета до определенной даты

Таймер отсчета до определенной даты

Нужно установить отсчет времени до нового годаВроде написал все верно, а когда запускаю, текст label'ов не меняется

185