web-dev-qa-db-fra.com

"Échec de la connexion pour l'utilisateur" C # avec SQLConnection

J'ai essayé de me connecter à ma base de données (qui se trouve sur le même ordinateur que mon code) via mon code C #. Le problème est que je reçois toujours l'erreur "Échec de la connexion pour l'utilisateur" "" ... J'avoue que ma connaissance de la connexion aux bases de données est minime et j'ai essayé presque toutes les étapes des autres questions!

voici une partie de mon code:

SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLServerConnection"].ConnectionString);
        SqlCommand command = connection.CreateCommand();
        command.CommandText = @"IF EXISTS
                            (
                              SELECT *
                              FROM user 
                              WHERE EMAILADRES = @email and WACHTWOORD = @password
                            ) SELECT CAST (1 as bit) 
                            ELSE
                              SELECT CAST(0 as bit)";
        command.Parameters.AddWithValue("email", email);
        command.Parameters.AddWithValue("password", password);


        connection.Open();
        object ReturnBool = command.ExecuteScalar();
        connection.Close();

et voici ma chaîne de connexion:

<add name="SQLServerConnection" connectionString="Server=localhost; Database=database1;uid=NT AUTHORITY\NETWORK SERVICE" />
11
Lourens

vous devez changer la chaîne de connexion;

<add name="SQLServerConnection" connectionString="Server=localhost;Database=database1;Trusted_Connection=True;/>

si vous utilisez l'authentification Windows pour vous connecter à la base de données locale, vous devez définir Trusted_Connection=True; si vous utilisez l'authentification SQL Server, vous devez déclarer User Id=myUsername; Password=myPassword;.

25
daryal

Je recommanderais de faire ceci:

1) Remplacez la chaîne de connexion par:

<add name="SQLServerConnection" connectionString="Server=.;Database=database1;Trusted_Connection=True;"/>

'Serveur =.' - une instance par défaut de SQL Server sur votre machine est utilisée,

'Trusted_Connection = True' - L'authentification Windows est utilisée pour valider votre accès à l'instance SQL Server.

2) Vérifiez dans Sql Management Studio que votre utilisateur Windows est autorisé à accéder à "database1".

La deuxième erreur que vous obtenez, car vous devez ajouter "@" dans le nom du paramètre comme ceci:

command.Parameters.AddWithValue("@email", email);
command.Parameters.AddWithValue("@password", password);

Je recommanderais également de changer votre code comme ceci:

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLServerConnection"].ConnectionString))
{
    using (var command = connection.CreateCommand())
    {
        command.CommandText = @"IF EXISTS
                        (
                          SELECT *
                          FROM user 
                          WHERE EMAILADRES = @email and WACHTWOORD = @password
                        ) SELECT CAST (1 as bit) 
                        ELSE
                          SELECT CAST(0 as bit)";

        command.Parameters.AddWithValue("@email", email);
        command.Parameters.AddWithValue("@password", password);

        connection.Open();
        var result = command.ExecuteScalar();
    }
}
8
Bartłomiej Mucha

Modifiez votre chaîne de connexion.

<add name="SQLServerConnection" connectionString="Server=.;Database=database1;Trusted_Connection=True;"/>

Si vous utilisez l'authentification serveur,

<add name="SQLServerConnection" connectionString="Server=.;Database=database1; UserId = Username; Password = Password;"/>

Si vous avez encore une erreur,

Vérifiez vos services et protocoles SQL dans le gestionnaire de configuration du serveur SQL.

2
Night Hunter

Essayez comme ci-dessous ... cela vous aidera ..

        string email ="[email protected]" //Give your email id to check
        string password ="Test" //Give your Password to check
        SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLServerConnection"].ConnectionString);
        SqlCommand command = connection.CreateCommand();
        command.CommandText = "SELECT * FROM user WHERE EMAILADRES = @email and WACHTWOORD = @password" 
        command.Parameters.AddWithValue("@email", email);
        command.Parameters.AddWithValue("@password", password);
        connection.Open();
        SqlDataReader dr = command.ExecuteReader();
        if (dr.Read())
        MessageBox.Show("Exists");
        else
        MessageBox.Show("Not Exists");
        connection.Close();
1
Pandian