我在C#中有一个Windows窗体项目。我的表单上有两个文本框。 名称的第一个文本框和第二个姓氏的文本框。
每当用户按下TAB按钮时,我想从数据库中检查是否有像我的第一个textbox's.text 这样的名称。如果有,那么它将转移到下一个控制。如果不是,那么我的程序会要求使用LINQ to SQL将此名称保存到DB?
答案 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();
}
}