2009-03-03 47 views
0

我在C#中有一个Windows窗体项目。我的表单上有两个文本框。 姓名的第一个文本框和姓氏的第二个文本框。LINQ查询控件的某些项目

无论何时用户按下TAB按钮我想从数据库检查是否有像我的第一个文本框文本名称。文字。如果有,那么它将移动到下一个控制。如果不是那么我的程序会要求用LINQ to SQL将此名称保存到DB?

回答

0

您想附加到控件上的验证事件。

0

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

如果计数为0,显示一个消息框,给用户提示他检查他是否要保存用户名,否则得到的姓氏和填充它在第二个文本框

0

首先,你需要定义和连接第一个文本框的Leave事件(假设其ID是textBox1)如下图所示:

 this.textBox1.Leave += new System.EventHandler(this.textBox1_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(); 

      } 
     }