if..else语句不能在foreach循环中工作
否则语句在foreach循环中无法正常工作?这是我的代码。如果我的代码解释有问题会很好。if..else语句不能在foreach循环中工作
protected void getdata_Click(object sender, EventArgs e)
{
using (var db2 = new cftzClassDataContext())
{
var username = (from p in db2.cftzAccounts
where p.username.Equals(getdata2.Text)
select p);
foreach (var p in username)
{
if (getdata2.Text == p.username)
{
displayMSG.Text = "Is this correct ";
displayData.Text = p.username;
displayQuestionMark.Text = "?";
}
else
{
displayMSG.Text = "No User Found.";
}
}
}
}
的if
说法完全是多余的,因为你已经过滤列表,只包括其中的用户名等于getData2.Text
账户。因此,您的if
测试将始终评估为true
。
你可以把它改写为这一点,具有相同效果的
using (var db2 = new cftzClassDataContext())
{
var username = (from p in db2.cftzAccounts.Take(100)
where p.username.Equals(getdata2.Text)
select p);
foreach (var p in username)
{
displayMSG.Text = "Is this correct ";
displayData.Text = p.username;
displayQuestionMark.Text = "?";
}
}
然而,正如汉斯指出,你的循环是不必要的,因为好,因为所有的用户名是相同的。你的代码可能是那样简单:
using (var db2 = new cftzClassDataContext())
{
var user = db2.cftzAccounts.
FirstOrDefault(account => account.username.Equals(getdata2.Text));
if (user != null)
{
displayMSG.Text = "Is this correct ";
displayData.Text = user.username;
displayQuestionMark.Text = "?";
}
else
{
displayMSG.Text = "No User Found.";
}
}
嗯,我试过我们的代码,但得到了错误,而不是 – FishBowlGuy 2012-07-13 08:10:25
啊 - 我想我现在明白你的问题。你想获得属于用户名的帐户。如果没有帐户存在,您希望显示适当的消息。请参阅我刚添加的第二段代码。 – 2012-07-13 08:11:37
谢谢它的作品:D – FishBowlGuy 2012-07-13 08:14:01
不知道你尝试什么来实现的,但它看起来像你正在试图找出如果用户是在数据库中,如果是这样,配置displayMSG对象。 你不能做这样的事情
var user=db2.Single(u=> u.username==getdata2.Text);
如果没有用户发现,辛格会抛出异常。如果你不这样做,你可以使用SingleOrDefault()方法
protected void getdata_Click(object sender, EventArgs e)
{
using (var db2 = new cftzClassDataContext())
{
try
{
var user=db2.Single(u=> u.username==getdata2.Text);
displayMSG.Text = "Is this correct ";
displayData.Text = user.username;
displayQuestionMark.Text = "?";
}
catch
{
displayMSG.Text = "No User Found.";
}
}
}
究竟是什么问题? – SingerOfTheFall 2012-07-13 08:04:18
你知道你总是覆盖“displayMSG.Text”吗?最后一个会赢! – 2012-07-13 08:05:12
其他不工作:(我不知道为什么 – FishBowlGuy 2012-07-13 08:05:54