2 Stimmen

Wie prüft man, ob eine Benutzerkennung bereits existiert?

Ich bin ein Anfänger Coder, ich baue ein Projekt mit C# Asp.Net, in dem ich Benutzer mit einer Benutzer-ID registrieren, jetzt meine Frage ist, dass wie zu überprüfen, dass die Benutzer-ID bereits in der Benutzertabelle oder nicht vorhanden ist, wenn Benutzer versuchen zu registrieren, ich bin mit Sql Server 2000?

10voto

Carson63000 Punkte 4145

Basierend auf dem Code in Ihrem Kommentar, würde ich sagen, was Sie brauchen, ist eine gute Einführung Tutorial, wie man Daten mit ADO.NET abzufragen, wenn jemand eine empfehlen kann.

Zunächst einmal können Sie nicht einfach "username.Text" in Ihrer Abfrage verwenden, da der SQL Server nichts über Ihre ASP.NET-Seite und deren "username"-Textbox weiß.

Sie müssen einen Parameter an Ihren SqlCommand übergeben (nicht immer erstellen Sie eine Zeichenfolge wie "select * from tbl_userlogin where User_id=" + username.Text, googeln Sie nach "sql injection attack", wenn Sie wissen wollen, warum), etwa so:

    SqlCommand cmd = new SqlCommand("select * from tbl_userlogin where User_id = @UserID", con);
    SqlParameter param = new SqlParameter();
    param.ParameterName = "@UserID";
    param.Value = username.Text;
    cmd.Parameters.Add(param);

Dann müssen Sie den Befehl tatsächlich ausführen und einen SqlDataReader zurückerhalten. Sie können nicht einfach auf Felder aus der Datenbank in Ihrem C#-Code verweisen, deshalb erhalten Sie den Kompilierfehler CS0103.

    SqlDataReader reader = cmd.ExecuteReader();

Ihr SqlDataReader enthält nun die Ergebnisse der Abfrage. Da es Ihnen nur darum geht, ob etwas gefunden wurde oder nicht, können Sie mit der Eigenschaft HasRows prüfen, ob etwas zurückgegeben wurde.

    if (reader.HasRows)
    {
        MessageBox.Show("User Id already exists");
    }

Lesen Sie mehr über SqlDataReader - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx - um zu erfahren, wie Sie im Bedarfsfall auf die Ergebnisse zugreifen können.

3voto

Abdel Raoof Olakara Punkte 18855

Sie können den Benutzer einfach in der Datenbank abfragen:

select * from User where user_id=<new-input-id>

Wenn es einen Datensatz gibt, bedeutet das, dass der Benutzer genommen ist, und wenn nicht, können Sie ihn in die Tabelle einfügen.

1voto

Fairy_G Punkte 407

0voto

qulzam Punkte 315

Es ist ganz einfach. Zuerst versuchen Sie, den Datensatz des gewünschten Benutzers zu erhalten (auszuwählen).

`Select * from UserTable where userId = <your-input-userid>`

Wenn er einen Datensatz zurückgibt, bedeutet dies, dass der Benutzer bereits existiert.
Wenn kein Datensatz zurückgegeben wird, bedeutet dies, dass dieselbe Benutzerkennung nicht bereits vorhanden ist und Sie diese Benutzerkennung für einen neuen Benutzer verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X