LINQ查询控制某些项目

时间:2009-03-03 22:40:32

标签: c# linq linq-to-sql

我在C#中有一个Windows窗体项目。我的表单上有两个文本框。 名称的第一个文本框和第二个姓氏的文本框。

每当用户按下TAB按钮时,我想从数据库中检查是否有像我的第一个textbox's.text 这样的名称。如果有,那么它将转移到下一个控制。如果不是,那么我的程序会要求使用LINQ to SQL将此名称保存到DB?

3 个答案:

答案 0 :(得分:0)

您想要附加到Control上的Validating事件。

答案 1 :(得分:0)

在第一个文本框的ExitFocus事件(不确定事件名称)上,从数据库中选择文本框中的文本。

如果您的Count为0,则向用户显示一个消息框,提示他检查是否要保存用户名,否则获取姓氏并将其填入第二个文本框

答案 2 :(得分:0)

首先,您需要定义并附加第一个文本框的Leave事件(假设其ID为textBox1),如下所示:

        this.textBox1.Leave += new System.EventHandler(this.textBox1_Leave);

然后在其相应的leave事件处理程序中,您可以编写适当的逻辑来检查用户输入的名称是否已使用LINQ to SQL存在于数据库中。根据调查结果,您可以使用if语句做出适当的决定,如下所示:

        private void textBox1_Leave(object sender, EventArgs e)
        {
            DataClasses1DataContext linqToSqlDataContext = new DataClasses1DataContext();
            if (linqToSqlDataContext.employees.Any(x => x.Name == textBox1.Text))
            {
                //move focus to surname text box control as the name already exists in DB
                textBox2.Focus();
            }
            else
            {
                //add a new entity into database for the name entered by the user
                linqToSqlDataContext.employees.Attach(new employee { Name = textBox1.Text });
                linqToSqlDataContext.SubmitChanges();

            }
        }