使用实体框架创建登录表单

时间:2017-11-03 12:35:05

标签: c# entity-framework

我在C#中使用实体框架创建了一个简单的登录表单。 我在if语句中不断收到此错误,它调用query.SingleOrDefault

Error   CS0103  The name 'Query' does not exist in the current context  rooster 

我相对较新,我该如何修复此错误?

我的代码:

    private void btnLogin_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtEmail.Text))
        {
            // check voor invoeren van wachtwoord en email.
            MessageBox.Show("Voer u email adres in!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtEmail.Focus();
            return;
        }
        try
        {
            using (roosterAppEntities db = new roosterAppEntities())
            {
                var query = from u in db.Users
                            where u.username == txtEmail.Text && u.password == txtPassword.Text
                            select u;                                         
            }
            if (query.SingleOrDefault() != null)
           {
                MessageBox.Show("Succesvol ingelogd! ", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
           }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            throw;
        }


    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

1 个答案:

答案 0 :(得分:0)

您正在query内初始化变量USING()。只要您的代码处理了db上下文,query也会丢失。请在使用之外定义。

这里有关于USINGplease take a look.

的C#功能的一个非常好的问题

示例:

    try
    {
        IQueryable query = null;
        using (roosterAppEntities db = new roosterAppEntities())
        {
            query = from u in db.Users
                        where u.username == txtEmail.Text && u.password == txtPassword.Text
                        select u;                                         
        }
        if (query.SingleOrDefault() != null)
       {
            MessageBox.Show("Succesvol ingelogd! ", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
       }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        throw;
    }
相关问题