发生了奇怪的事情。我有一个带有2个标签和2个文本框1个按钮的表单。在按钮操作方法中,我从文本框中获取值并将它们传递给Linq查询,如此
private void button1_Click(object sender, EventArgs e)
{
string Username = textBoxUsername.ToString();
string Password = textBoxPassword.ToString();
User admin = new User();
admin = db.Users.FirstOrDefault(u => u.Username == Username && u.Pass==Password);
if (admin != null)
MessageBox.Show("Succesfully");
else
MessageBox.Show("Fail");
}
即使数据库中存在该值, admin仍会返回null。
但如果我改变这个
admin = db.Users.FirstOrDefault(u => u.Username == "Admin" Pass=="12345");
它按照预期的方式返回对象。
你能告诉我我的代码中有什么问题吗?解决方案是什么。非常感谢你
(如果你发现这个愚蠢,我很抱歉:()
答案 0 :(得分:1)
这一行
string Username = textBoxUsername.ToString();
返回值System.Windows.Forms.TextBox, Text:
,而不是输入用户名
您需要使用属性Text
string Username = textBoxUsername.Text;
密码字段相同。
通常,如果您使用类实例中的ToString()
,则返回值是类的完全限定名称,除非该类重写ToString方法,返回使用类实例数据自定义的内容。 (一个例子是用于数字和日期格式化的ToString(some_type_of_mask)
的众多覆盖)