Почему не обновляется DataGridView?

382
31 марта 2017, 21:49
Это форма отправки данных в БД MSSQL
public partial class Form2 : Form
{
    DateTime localeDate = DateTime.Now;
    string connstr = WindowsFormsApp3.Utility.GetConnectionString();
    public static event Action DataChanged;
    public Form2()
    {
        InitializeComponent();
    }
    private void Form2_Load(object sender, EventArgs e)
    {

    }

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(connstr);
        SqlCommand cmd = new SqlCommand("add.NewOrd", conn);
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = @"INSERT INTO Zakaz(Phone,Adres,Tarif,Kol_pas,Koment,Ord_time)
VALUES(@phone,@adres,@tarif,@kol_pas,@koment,@ord_time)";
        cmd.Parameters.AddWithValue("@ord_time", localeDate);
        cmd.Parameters.AddWithValue("@phone", tbPhone.Text);
        cmd.Parameters.AddWithValue("@adres", tbAdr.Text);
        cmd.Parameters.AddWithValue("@tarif", cbTarif.SelectedItem);
        cmd.Parameters.AddWithValue("@kol_pas", cbKol.SelectedItem);
        cmd.Parameters.AddWithValue("@koment", tbKom.Text);
        tA953XIDataSet.AcceptChanges();
        if (DataChanged != null)
        DataChanged();

        try
        {
            conn.Open(); 
            cmd.ExecuteNonQuery();
        }
        catch(SqlException x)
        {
            MessageBox.Show(x.Message.ToString(), "Error Message");
        }
        finally
        {
            conn.Close();
        }
    }

"Это главная форма она должна обновить дата грид но она обновляется лишь после 2 клика на кнопку. При этом добавляется новая строка в БД но она тоже не отображается до 2 клика.

 public partial class Form1 : Form
  {
    public Form1()
    {
        InitializeComponent();
        Form2.DataChanged += UpdateGrid;
        label1.Text = "";
        timer1.Enabled = true;
        timer1.Interval = 1000;
    }
    private void UpdateGrid()
    {
        this.zakazTableAdapter.Fill(this.tA953XIDataSet.Zakaz);
        dgNewOrd.DataSource = tA953XIDataSet;
        dgNewOrd.DataMember = "Zakaz";
        dgNewOrd.Refresh();
    }
    private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        Form2.DataChanged -= UpdateGrid;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: данная строка кода позволяет загрузить данные в таблицу 
"tA953XIDataSet.Zakaz". При необходимости она может быть перемещена или удалена.
        this.zakazTableAdapter.Fill(this.tA953XIDataSet.Zakaz);
        timer1.Enabled = true;

    }
READ ALSO
Get-запрос. Ошибка "Сервер нарушил протокол. Section=ResponseStatusLine

Get-запрос. Ошибка "Сервер нарушил протокол. Section=ResponseStatusLine

Доброе время суток! При вызове Get метода, catch(Exception ex) выводит ошибку "Сервер нарушил протоколSection=ResponseStatusLine

394
Методы из Dictionary

Методы из Dictionary

Объясните, пожалуйста, как реализовать такой словарь?

405
как обратиться к элементу словаря по ключу?

как обратиться к элементу словаря по ключу?

как обратиться к элементу словаря по ключу, если ключ -

367