C#:如何根据数据库中的值填充文本框

时间:2017-07-28 09:53:16

标签: c#

我有这个应用程序在数据库中搜索客户的地址。我添加了4 TextboxtxtAddr1txtAddr2txtAddr3txtAdd4,它们将在数据库中显示客户的地址。在数据库中,地址有6个字段,它们是Address1, Address2, Address3, Address4, CityPostalcode and AttentionTo。我需要做以下事情:

如果数据库中的所有地址(Address1, Address2, Address3, Address4, CityPostalcode and AttentionTo)都不为空。然后,

txtAddress1.Text = Address1 + " " + Address2;
txtAddress2.Text = Address3 + " " + Address4;
txtAddress3.Text = CityPostalcode;
txtAddress4.Text = AttentionTo;

如果Address3和Address4为空,

txtAddress1.Text = Address1;
txtAddress2.Text = Address2;
txtAddress3.Text = CityPostalcode;
txtAddress4.Text = AttentionTo;

其他情况如地址3为空,地址1和地址3为空等等。

我知道我可以使用If...Else条件来解决这个问题,但我的问题是,有没有其他方法可以做到这一点?或者我会坚持在每个场景中执行If...Else条件吗?感谢。

2 个答案:

答案 0 :(得分:1)

你可以使用三元运算符?:来说

txtAddress1.Text = (!string.IsNullOrEmpty(Address2)) 
                                  ? Address1 + " " + Address2 
                                  : Address1;

答案 1 :(得分:0)

我会在地址类上创建一些额外的只读属性来确定状态。

class Address
{
    public bool DoesntHaveAddress3or4 { get { return string.IsEmptyOrWhiteSpace(this.Address3) && string.IsEmptyOrWhiteSpace(this.Address4); } }
    public bool DoesntHaveAddress3 { get { return string.IsEmptyOrWhiteSpace(this.Address3); } }
}

然后您可以在设置文本框时使用它:

if (address.DoesntHaveAddress3or4) {
   // set the appropriate text boxes.
}

您可以使用更复杂的模式 - 但这将完全符合您的要求,并且对您正在做的事情更具描述性。