即使数据库WinForm实体框架5中存在该值,也返回null

时间:2014-12-13 14:59:36

标签: winforms entity-framework

发生了奇怪的事情。我有一个带有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");它按照预期的方式返回对象。 你能告诉我我的代码中有什么问题吗?解决方案是什么。非常感谢你 (如果你发现这个愚蠢,我很抱歉:()

1 个答案:

答案 0 :(得分:1)

这一行

string Username = textBoxUsername.ToString();

返回值System.Windows.Forms.TextBox, Text:,而不是输入用户名

的文本

您需要使用属性Text

string Username = textBoxUsername.Text;

密码字段相同。

通常,如果您使用类实例中的ToString(),则返回值是类的完全限定名称,除非该类重写ToString方法,返回使用类实例数据自定义的内容。 (一个例子是用于数字和日期格式化的ToString(some_type_of_mask)的众多覆盖)