Как я могу обновить Datagridview в MainForm, когда клиент добавлен в Форму создания клиента? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь показать данные в сетке данных в MainForm. Я добавляю клиентов в Форму создания клиента.

private void createButton_Click(object sender, EventArgs e)
{
    string timestamp = Info.createTimestamp();
    string userName = Info.getCurrentUserName();
    if (string.IsNullOrEmpty(countryTxtBx.Text) ||
        string.IsNullOrEmpty(cityTxtBx.Text) ||
        string.IsNullOrEmpty(addressTxtBx.Text) ||
        string.IsNullOrEmpty(cityTxtBx.Text) ||
        string.IsNullOrEmpty(zipTxtBx.Text) ||
        string.IsNullOrEmpty(phoneTxtBx.Text) ||
        string.IsNullOrEmpty(nameTxtBx.Text) ||
        (yesButton.Checked == false && noButton.Checked == false))
    {
        MessageBox.Show("Please enter all fields");
    }
    else
    {
        int countryId = Info.createRecord(timestamp, userName, "country", $"'{countryTxtBx.Text}'");
        int cityId = Info.createRecord(timestamp, userName, "city", $"'{cityTxtBx.Text}', '{countryId}'");
        int addressId = Info.createRecord(timestamp, userName, "address", $"'{addressTxtBx.Text}', '', '{cityId}', '{zipTxtBx.Text}', '{phoneTxtBx.Text}'");
        Info.createRecord(timestamp, userName, "customer", $"'{nameTxtBx.Text}', '{addressId}', '{(yesButton.Checked ? 1 : 0)}'");
        Close();
    }
}

Я могу получить данные из MySql, но когда я добавляю или удаляю клиента, представление данных в MainForm не обновляется. Есть ли способ обновить представление данных в основной форме, когда я добавляю клиентов в форму создания клиента?

public void DataFill()
{
    // Open connection
    MySqlConnection conn = new MySqlConnection(Info.conString);
    conn.Open();

    // Create new DataAdapter
    string query = $"SELECT * FROM customer";
    MySqlDataAdapter SDA = new MySqlDataAdapter(query, conn);
    DataTable dt = new DataTable();
    SDA.Fill(dt);
    // Render data onto the screen
    customerDGV.DataSource = dt;
}

1 Ответ

0 голосов
/ 07 ноября 2019

Вы можете обновлять DataGridView MainForm при каждом добавлении или удалении клиента. Вот способ достичь этого ...

//event to open the create customer form
private void OpenCreateCustomerForm(){
//first, create an instance of the form
frmCreateCustomer frm = new frmCreateCustomer();
/*second, add the function DataFill() to the FormClosed event of the create customer form, so everytime you close it, the MainForms datagridview will get updated*/
frm.FormClosed += new FormClosedEventHandler((object s, FormClosedEventArgs f) => { DataFill();});
//finally, show the create customer form
frm.ShowDialog();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...