Какой из них является правильным способом сохранения данных в дочерней форме в базе данных? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть родительская форма и дочерняя форма в моем заявлении.Давайте вызовем родительскую форму как frmCustomers, а дочернюю форму как frmAccountDetails.У frmCustomers есть сведения о клиентах банка в элементе управления сеткой данных, такие как их имена, адреса, номера телефонов и т. д. При нажатии кнопки в сетке данных появляется frmAccountDetails с подробной информацией об учетной записи (ях), принадлежащей выбранному клиенту.Пользователь может редактировать детали в frmAccountDetails, а затем нажимать на них кнопку «Сохранить» или «Отмена».Мой вопрос о том, что должно прийти в событии btnSave_Click.Что из следующего является правильным способом сохранить данные, отредактированные в frmAccountDetails?

1.

btnSave_Click(object sender, EventArgs e)
{
  // Open a connection to the database from frmAccountDetails 
  // and save the edited details to the database
}

ИЛИ

2.

btnSave_Click(object sender, EventArgs e)
{
  // Pass edited details in frmAccountDetails to frmCustomers
  // and save the details to the DB in the save click event of that form
}

Какой из вышеперечисленных 2 является правильным подходом?Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 26 июня 2019

Я предпочитаю 2 способа.Потому что frmAccountDetails просто отображает данные.Я предлагаю вам использовать внедрение зависимости для его реализации.

Вот пример.Я думаю, что это поможет вам.

public interface IEditAccount
{
    // you can change the type.
    // Save Click Event
    void Save(string someData);

    // Cancel Event
    void Cancel();
}


public partial class frmAccountDetails : Form
{
    public IEditAccount EditAccount { set; }

    public frmAccountDetails()
    {
        InitializeComponent();
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
        EditAccount.Save("Some Data");
    }
}

public partial class frmCustomers : Form, IEditAccount
{
    public frmCustomers()
    {
        InitializeComponent();
    }

    private void DisplayAccountDetails(object sender, EventArgs e)
    {

        var form = new frmAccountDetails();
        form.EditAccount = this;
        form.Show();
    }

    public void Save(string someData)
    {
        // When user click the frmAccountDetails.btnSave_Click_Click you can get the someData
        // Save the someData to the database  
    }

    public void Cancel()
    {
        // user click the cancel
    }
}
...