Comme je l'ai dit, je veux vérifier dans le registre que le nom d'utilisateur n'est pas nul, ou vide
ni déjà pris.C# Vérifiez si le nom d'utilisateur n'est pas vide ou vide
static SqlConnection Con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=heres_the_path;Integrated Security=True");
static string name,pass,email;
static DataTable dt = new DataTable();
S'il vous plaît aidez-moi à corriger le code, le problème se situe ici:
static bool IsUsernameAlreadyTaken(string name)//Username Checker
{
SqlDataAdapter sda = new SqlDataAdapter("SELECT count(*) FROM Login WHERE Nev='" + name + "'", Con);
sda.Fill(dt);
if (dt.Rows[0][0].ToString() == "1") return true;
else return false;
}
Ou dans cette boucle while:
static void Register() {
Console.WriteLine("What will be your username?");
while (string.IsNullOrEmpty(name) && IsUsernameAlreadyTaken(name)==false)
{
name = Console.ReadLine();
if (IsUsernameAlreadyTaken(name))
{
Console.WriteLine("That's already taken");
}
if (string.IsNullOrEmpty(name))
{
Console.WriteLine("Why?");
}
}
}
Maintenant, si je donne un nom au programme qui a déjà existe dans la base de données il ne me dit pas qu'il est déjà pris, juste continu.
"le problème est ici ou là" - Eh bien, c'est quoi? Lorsque vous parcourez cela dans le débogueur, où/comment spécifiquement diffère-t-il de ce que vous attendez? – David
Une fois que vous avez trié le problème de logique/syntaxe, vous avez un nouveau problème: même si vous avez vérifié qu'il n'a pas été pris, il peut être pris avant d'essayer de l'ajouter. Donc, la façon normale de procéder, comme lors de la création de fichiers sur disque, etc., est d'essayer de créer l'enregistrement et de voir si cela fonctionne. Si cela fonctionne, cela n'a pas été pris. Si cela n'a pas fonctionné, alors cela a été pris. Cela nécessite que la base de données elle-même vérifie les noms d'utilisateur en double, c'est-à-dire qu'il s'agit d'une clé dans la base de données. –
Et je le vérifie dans la base de données avec le booléen IsUsernameAlreadyTaken, ou je me trompe? @AndersForsgren –