login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[C#] User check (Opgelost)

Offline larssy1 - 09/04/2010 10:20
Avatar van larssy1MySQL beginner Hoi mensen,

Ik ben bezig met een leden systeem in C#.
Nu ben ik bezig met de register pagina, en 't gaat opzich goed..

Totdat ik mijn User Check erin zette..

Hij kijkt perfect of de username bestaat, maar als hij niet bestaat, dan kan hij de input niet lezen.
Ik weet waar de fout ligt, maar niet hoe het op te lossen is.

de fout ligt namelijk bij mijn query, hij selecteerd uit de database een naam die de input opgeeft, maar als deze input niet bestaat, geeft hij natuurlijk een foutmelding..

Nu is mijn vraag, hoe voorkom ik dit??

De code:
  1. try
  2. {
  3. SqlDataReader myReader;
  4. SqlCommand NameCheck = new SqlCommand("SELECT name FROM Members WHERE name='" + txtUser.Text + "'", myConnection);
  5. myReader = NameCheck.ExecuteReader();
  6.  
  7.  
  8. if (myReader.Read())
  9. {
  10. MessageBox.Show("Nickname already exists!");
  11. }
  12. else
  13. {
  14. SqlCommand myCommand = new SqlCommand("INSERT INTO Members (id, name, password) " +
  15. "Values (5, '" + txtUser.Text + "', '" + txtPwd.Text + "')", myConnection);
  16. myCommand.ExecuteNonQuery();
  17.  
  18. this.Hide();
  19.  
  20. MessageBox.Show("Your account ("+ txtUser.Text +") has been created!");
  21. }
  22. }
  23. catch
  24. {
  25. MessageBox.Show("Error!");
  26. }

9 antwoorden

Gesponsorde links
Offline Ultimatum - 09/04/2010 19:19
Avatar van Ultimatum PHP expert Contolleer of het username veld gevuld is? Dit moet je dan buiten je try catch block houden.
  1. if(txtUser.Text == string.Empty) {
  2. // Leeg
  3. } else {
  4. // Niet leeg
Offline Abbas - 09/04/2010 22:08
Avatar van Abbas Gouden medaille

Crew .NET
Probeer eens eerder:

  1. if(myReader.HasRows)
  2. {
  3. //bestaat al
  4. }
Offline larssy1 - 10/04/2010 00:32
Avatar van larssy1 MySQL beginner dan nog steeds zit ik met mijn query die niet klopt. Want hij kan zowiezo geen user selecteren als hij niet bestaat,
dus hij gaat door naar de catch waar hij de
Messagebox.Show("Error!!"); weergeeft..

En in de catch een try zetten functioneert blijkbaar niet..
Offline Ultimatum - 10/04/2010 11:58
Avatar van Ultimatum PHP expert Zoals ik al zei, zet mijn stuk code buiten de try catch.

  1. if(txtUser.Text == string.Empty) {
  2. MessageBox.Show("Vul een username in");
  3. } else {
  4. try
  5. {
  6. SqlDataReader myReader;
  7. SqlCommand NameCheck = new SqlCommand("SELECT name FROM Members WHERE name='" + txtUser.Text + "'", myConnection);
  8. myReader = NameCheck.ExecuteReader();
  9.  
  10.  
  11. if (myReader.Read())
  12. {
  13. MessageBox.Show("Nickname already exists!");
  14. }
  15. else
  16. {
  17. SqlCommand myCommand = new SqlCommand("INSERT INTO Members (id, name, password) " +
  18. "Values (5, '" + txtUser.Text + "', '" + txtPwd.Text + "')", myConnection);
  19. myCommand.ExecuteNonQuery();
  20.  
  21. this.Hide();
  22.  
  23. MessageBox.Show("Your account ("+ txtUser.Text +") has been created!");
  24. }
  25. }
  26. catch
  27. {
  28. MessageBox.Show("Error!");
  29. }
  30. }


Nu zou je de error Vul een username in als je niets invult.
Offline larssy1 - 10/04/2010 12:08
Avatar van larssy1 MySQL beginner Oké bedankt, dat is 1 probleem dan ..

Maar het gaat om de usercheck zelf, ik heb een connectie naar mijn MSSQL server, maar ik weet niet hoe ik hem moet laten nakijken of de username al bestaat of niet..

Ik kan wel nakijken of hij bestaat, maar zo niet, dan loopt de applicatie vast, vanwege mijn SQL in de try.

Dus, bestaat de username, dan zegt ie
MessageBox.Show("Nickname already exists!");

Maar bestaat de username niet dan..
MessageBox.Show("Error!");

Voor zover ik weet, werkt het niet om een try in een catch te doen..
Offline Abbas - 10/04/2010 13:56 (laatste wijziging 10/04/2010 13:56)
Avatar van Abbas Gouden medaille

Crew .NET
Je kan zonder problemen een try in een catch stoppen. Maar zoals ik in je vorige topic al zei, stop met die custom error weergave zolang je aan het developen bent. Gebruik volgende code:

  1. try
  2. {
  3. //code hier
  4. }
  5. catch (Exception ex)
  6. {
  7. MessageBox.Show(ex.Message);
  8. }
Offline larssy1 - 10/04/2010 14:58 (laatste wijziging 12/04/2010 10:56)
Avatar van larssy1 MySQL beginner Na nog een poging, werkt hij nog steeds niet.. ik weet echt niet wat ik fout doe. >.<

<link verwijderd>

iemand..?
--------------------
Ik ben nu alle velden benodigdheden aan het toevoegen..

En ik vroeg me af,, kan iemand mij helpen met het veld, E-mail
Deze moet een @ en een . bevatten, met max 3 letters achter de punt.

Of raden jullie aan om 1 textbox en 2 comboboxes te gebruiken.
voor Email, Server(hotmail, gmail etc) en dan .com of .nl etc
Offline lemoinet - 12/04/2010 10:38
Avatar van lemoinet PHP gevorderde ik heb het een beetje aangepast. werkt het nu misschien?

http://plaatscode.be/139108/

Voor je email veld kan je best een custom textbox maken
http://www.code...xtbox.aspx
Offline larssy1 - 12/04/2010 10:56 (laatste wijziging 12/04/2010 11:59)
Avatar van larssy1 MySQL beginner ow, sorry, ik had de eerste vraag al zelf opgelost.. mijn excuses..

Kwa tekstbox,, Ik snap wat hij doet,, maar niet hoe.. ik zie bij special expressions iets staan,, wat als validatie word vereist,, maar hoe moet dit dan voor email..:x
------
textbox werkt niet :x
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s