2009-03-03 46 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(); 

      } 
     }