我要做的是从数据库中检索患者的详细信息,然后基于文本框中输入的值,它将更新患者的详细信息,但是如果文本框是空的,我将现有的细节分配给文本框,我认为这是相当愚蠢的。
你建议我做些什么来改进下面的代码,使其更有效或更少重复?
代码
client = new ServiceReference1.Service1Client();
pat = client.GetPatientbyID(txtUpdatePatientID.Text);
grdView.DataSource = pat;
grdView.DataBind();
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;
client.UpdateAllDetails(txtUpdatePatientID.Text, txtUpdateForename.Text,
txtUpdateSurname.Text, txtUpdateStreet.Text, txtUpdateTown.Text,
txtUpdateCity.Text, Convert.ToDateTime(txtUpdateDOB.Text),
txtUpdateHouseNumber.Text, txtUpdateMobile.Text);
client.Close();
GetPatients(txtUpdatePatientID);
最佳答案
正如他在评论中指出的那样,我认为你不能更快地做到这一点;如果这是你的逻辑,这就是需要做的。
您可以将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;
具有
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);
作为一个更高层次的设计点,如果这些是wpf文本框,您是否考虑过使用数据绑定?
关于c# - 有效地更新表格的详细信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17218905/