J'ai un formulaire de registre et je veux vérifier que l'utilisateur ne s'est pas enregistré auparavant.Empêcher les utilisateurs de s'inscrire deux fois
Mon code est ci-dessous. Je pense que deux problèmes existent: (1) la méthode d'appel et (2) passer le paramètre à la procédure stockée. Mon symptôme est que cela provoque une exception qui dit que le paramètre d'entrée n'est pas initialisé.
create procedure fakeuser @username nvarchar(250),@codemeli nchar(10),@email nvarchar(50), @user nvarchar(250) output,@code nchar(10)output,@mail nvarchar(50)output
as
if exists(select username,email,codemeli from karbar where [email protected])
set @[email protected]
else if exists(select username,email,codemeli from karbar where [email protected])
set @[email protected]
else if exists(select username,email,codemeli from karbar where [email protected])
set @mail= @email
Voici le code C#:
public static string confirm(string username, string email, string codemeli)
{
string constring = "data source=.;database=site;integrated security=true;";
SqlConnection connection = new SqlConnection(constring);
// Command - specify as StoredProcedure
SqlCommand command = new SqlCommand("fakeuser", connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@username", SqlDbType.NVarChar);
param.Direction = ParameterDirection.Input;
param.Value = username;
command.Parameters.Add(param);
SqlParameter param2 = new SqlParameter("@email", SqlDbType.NVarChar);
param2.Direction = ParameterDirection.Input;
param2.Value = username;
command.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@codemeli", SqlDbType.NChar);
param3.Direction = ParameterDirection.Input;
param3.Value = username;
command.Parameters.Add(param3);
// Return value as parameter
SqlParameter returnuser = new SqlParameter("@user", SqlDbType.NVarChar);
returnuser.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnuser);
SqlParameter returncode = new SqlParameter("@code", SqlDbType.NChar);
returncode.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returncode);
SqlParameter returnmail = new SqlParameter("@mail", SqlDbType.NVarChar);
returnmail.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnmail);
// Execute the stored procedure
connection.Open();
command.ExecuteNonQuery();
connection.Close();
Merci.
Qu'est-ce qui ne fonctionne pas exactement? Vous devez utiliser votre débogueur Visual Studio, SQL Server Management Studio et d'autres outils de programmation pour déterminer quelle partie du code est à l'origine du problème. Nous sommes heureux de vous aider si vous trouvez le problème et que vous n'arrivez pas à le résoudre, mais je pense que vous trouverez que la plupart des gens ne voudront pas trouver votre problème pour vous. –