C# 高效地更新表格';什么是细节?

C# 高效地更新表格';什么是细节?,c#,database,performance,wcf,C#,Database,Performance,Wcf,我试图做的是从数据库中检索患者的详细信息,然后根据文本框中输入的值,它将更新患者的详细信息,但是如果文本框为空,我将现有的详细信息分配给文本框,我认为这相当愚蠢 您建议我如何改进下面的代码,使其更高效或更少重复 代码: 正如他在评论中指出的,我不认为你能更快地做到这一点;如果这是你的逻辑,这就是你需要做的 您可以将if检查和条件集提取到一个方法中,以整理此代码的外观 比如: private void SetIfNotEmpty(TextBox textBoxToSet, string value

我试图做的是从数据库中检索患者的详细信息,然后根据文本框中输入的值,它将更新患者的详细信息,但是如果文本框为空,我将现有的详细信息分配给文本框,我认为这相当愚蠢

您建议我如何改进下面的代码,使其更高效或更少重复

代码:


正如他在评论中指出的,我不认为你能更快地做到这一点;如果这是你的逻辑,这就是你需要做的

您可以将
if
检查和条件集提取到一个方法中,以整理此代码的外观

比如:

private void SetIfNotEmpty(TextBox textBoxToSet, string value)
{
  if (textBoxToSet.Text == "")
    textBoxToSet.Text = value;
}
然后替换

        if (txtUpdateForename.Text == "")
            txtUpdateForename.Text = pat[0].Forename;
        if (txtUpdateSurname.Text == "")
            txtUpdateSurname.Text = pat[0].Surname;
        if (txtUpdateStreet.Text == "")
            txtUpdateStreet.Text = pat[0].Street;
        if (txtUpdateTown.Text == "")
            txtUpdateTown.Text = pat[0].Town;
        if (txtUpdateCity.Text == "")
            txtUpdateCity.Text = pat[0].City;
        if (txtUpdateDOB.Text == "")
            txtUpdateDOB.Text = pat[0].DOB.ToString();
        if (txtUpdateHouseNumber.Text == "")
            txtUpdateHouseNumber.Text = pat[0].House_number;
        if (txtUpdateMobile.Text == "")
            txtUpdateMobile.Text = pat[0].Mobile;


作为更高级别的设计点,如果这些是WPF文本框,您是否考虑过使用数据绑定?

您可以做一些事情来减少代码的重复性并提高代码的可维护性,但如果您的意思是“高效”,即它将运行得更快,您将无法加快此特定代码段的速度。您可以建议如何减少代码的重复性?类似于Richard的建议,并将
pat[0]
提取到一个变量中。谢谢,我认为我的问题是我将事情复杂化了。从未听说过WPF文本框,你能详细解释一下吗?对不起,我的意思是这是WPF还是WinForms应用程序?
        if (txtUpdateForename.Text == "")
            txtUpdateForename.Text = pat[0].Forename;
        if (txtUpdateSurname.Text == "")
            txtUpdateSurname.Text = pat[0].Surname;
        if (txtUpdateStreet.Text == "")
            txtUpdateStreet.Text = pat[0].Street;
        if (txtUpdateTown.Text == "")
            txtUpdateTown.Text = pat[0].Town;
        if (txtUpdateCity.Text == "")
            txtUpdateCity.Text = pat[0].City;
        if (txtUpdateDOB.Text == "")
            txtUpdateDOB.Text = pat[0].DOB.ToString();
        if (txtUpdateHouseNumber.Text == "")
            txtUpdateHouseNumber.Text = pat[0].House_number;
        if (txtUpdateMobile.Text == "")
            txtUpdateMobile.Text = pat[0].Mobile;
SetIfNotEmpty(txtUpdateForename, pat[0].Forename);
SetIfNotEmpty(txtUpdateSurname.Text, pat[0].Surname);
SetIfNotEmpty(txtUpdateStreet.Text, pat[0].Street);
SetIfNotEmpty(txtUpdateTown.Text, pat[0].Town);
SetIfNotEmpty(txtUpdateCity.Text, pat[0].City);
SetIfNotEmpty(txtUpdateDOB.Text, pat[0].DOB.ToString());
SetIfNotEmpty(txtUpdateHouseNumber.Text, pat[0].House_number);
SetIfNotEmpty(txtUpdateMobile.Text, pat[0].Mobile);