Soll checken ob DB Eintrag schon vorhanden ist

  • So mein Tool hat fast seine ganzen Features drinne, nur eine sache fehlt noch. Ein Account adder.


    Ich würde gerne Checken ob der Account name schon vorhanden ist in der db wenn ja -> error wenn nein -> weiter mit dem sqlcommand


    Ich dachte mir vllt geht das ganze mit If ? nur leider weiß ich nicht wie ich das anstellen kann wenn es mit if gehen würde :D
    könnt ihr mir da vllt helfen?

  • Kein wunder, du löschst jedes mal den Inhalt deiner Listbox.
    Würdest du durch steppen (debuggen), würdest du das auch sehen.


    Code
    1. while (Charsreader.Read())
    2. {
    3. object charnames = Charsreader["CharName16"];
    4. listBox1.Items.Clear();
    5. listBox1.Items.Add(charnames.ToString());
    6. };


    Aber du bist ja beratungs ressistent.

    And the reign will kill us all 
    We throw ourselves against the wall
    But no one else can see
    The preservation of the martyr in me


    Slipknot - Psychosocial

  • Du liest ja nicht mehrere Elemente auf einmal und kopierst die in ein Array.
    Du liest pro Schleifendurchgang ein Element.


    D.h.


    Element 1
    Element 2
    Element 3


    --> Durch dein clear, wird am ende nur Element 3 in der listbox stehen.
    Dein Clear kannst du an den Anfang deiner Methode setzen.

    And the reign will kill us all 
    We throw ourselves against the wall
    But no one else can see
    The preservation of the martyr in me


    Slipknot - Psychosocial

  • kann kein C#, aber würde einfach mal mit der contains methode versuchen ^^


    Code
    1. if (TextBox1.Text == null) {
    2. MessageBox.Show("Error");
    3. } else if (ListBox1.Items.Contains(TextBox1.Text)) {
    4. MessageBox.Show("Hurra");
    5. } else {
    6. MessageBox.Show("ne is nicht da");
    7. }


    habs jetzt einfach mal aus dem kopf rausgemacht und in den converter reingeschmissen^^
    denke das muss man noch ausbesser, aber ich glaube so ungefähr gehts.

  • Gibt es nicht eine Stored Procedure die das schon übernimmt?
    Hab grad keinen SQL-Server am laufen, aber ich meine mich da an was erinnern zu können ...
    Weil damit gehts auf jedenfall einfacher.


    Ansonsten musste 2 Querys ausführen:


    Erst prüfen, ob schon ein Eintrag mit diesem Accountnamen vorhanden ist:

    SQL
    1. SELECT JID FROM SRO_VT_ACCOUNT WHERE StrUserId = <DeinUsername>


    Und wenn nicht:

    SQL
    1. INSERT INTO SRO_VT_ACCOUNT(StrUserId, Password, ...) VALUES (...)


    Gruß
    florian0

  • Grundsätzlich kannst du das (My)SQL Seite lösen indem du den Benutzernamen als UNIQUE definierst, also darf er nur einmal vorkommen, dann kannst du direkt das INSERT ausführen und bekommst dann vom SQL-Server den Fehler, dass es diesen schon gibt, wenn du dann ne vernünftige Fehlerbehandlung hast ist das kein Problem und du kannst es dem User mitteilen.


    Ansonsten ist das von florian0 die einfachste Lösung.