2009-03-03 9 views
0

Ich habe ein Windows-Formular-Projekt in C#. Auf meinem Formular befinden sich 2 Textfelder. Das erste Textfeld für Name und das zweite für den Nachnamen.LINQ-Abfrage zum Steuern eines Artikels

Wenn der Benutzer die TAB-Taste drückt Ich möchte aus der Datenbank überprüfen, ob es einen Namen wie meine erste textbox.text gibt. Wenn dies der Fall ist, wird es zum nächsten Steuerelement verschoben. Wenn dies nicht der Fall ist, wird mein Programm nach dem Speichern dieses Namens in DB mit LINQ to SQL fragen?

Antwort

0

Sie möchten das Validierungsereignis im Steuerelement anhängen.

0

Auf dem ExitFocus Ereignis (nicht sicher über den Ereignisnamen) der ersten Textbox wählen Sie aus der DB für den Text in der Textbox.

Wenn Count 0 zeigen ein Meldungsfeld an den Benutzer ihn auffordert, zu prüfen, ob er den Namen speichern will bekommen den Benutzernamen oder andere, und es in der zweiten Textbox

0

Zuerst definieren Sie müssen füllen und befestigen die Leave Ereignis des ersten Textfeld (sagen wir mal seine ID ist textBox1) wie unten dargestellt:

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

Dann in seinem entsprechenden leave Event-Handler Sie eine entsprechende Logik schreiben zu überprüfen, ob der Name bereits vom Benutzer eingegeben existiert in der Datenbank mit LINQ to SQL oder nicht. Basierend auf den Ergebnissen können Sie eine geeignete Entscheidung treffen, indem Sie if wie folgt verwenden:

 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(); 

      } 
     } 
Verwandte Themen