Pourquoi j'obtiens cette erreur: La propriété ConnectionString n'a pas été initialisé

J'ai cherché et essayé tout mais ne peuvent pas comprendre ça. Je suis en train de faire quelque chose de simple, mais il semble comme si je fais quelque chose de mal. Fondamentalement, n'importe quel utilisateur qui a effectué un dépôt, je veux retourner vrai, si ils ne l'ont pas, je veux retourner false. Ce devrait être facile, je suppose, mais je suis perplexe sur cette.

Voici l'erreur:

La propriété ConnectionString n'a pas été initialisé.

Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.

Détails De L'Exception: System.InvalidOperationException: La propriété ConnectionString n'a pas été initialisé.

Source De L'Erreur:

Line 59:         Cmd.Parameters.AddWithValue("@UserID", userId);
Line 60:         con.Open();
Line 61: 
Line 62:         result = (int)Cmd.ExecuteScalar();

Voici le haut de la stack trace:

[InvalidOperationException: La propriété ConnectionString n'a pas été initialisé.]
Système.Les données.SqlClient.SqlConnection.PermissionDemand() +4879939
Système.Les données.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
Système.Les données.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
Système.Les données.SqlClient.SqlConnection.Open() +122

Voici ma méthode pour retourner vrai ou faux:

public static bool HasDeposit(int userId)
{
    int result = 0;
    //since executeScalar is intended to retreive only a single value
    //from a query, we select the number of results instead of the email address
    //of each matching result.
    string queryTransaction = "SELECT COUNT(UserID) FROM Transaction WHERE TransactionTypeID = 6 AND UserID = @UserID";
    string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
    SqlConnection con = new SqlConnection(constr);

    SqlCommand Cmd = new SqlCommand(queryTransaction, con);

    Cmd.Parameters.AddWithValue("@UserID", userId);
    con.Open();

    result = (int)Cmd.ExecuteScalar();

    //returning a boolean comparator works like this :
    //will return true if the result is greater than zero, but false if it is not.
    con.Close();
    return result > 0;
}

Toute aide /conseils sur ce serait très apprécié.

  • essayez d'examiner ce qui est de la variable de la fabr
  • Vous êtes à la vérification de AppSettings qui, en tant que Kane a fait remarquer, n'est pas le lieu habituel de mettre les chaînes de connexion dans un fichier de configuration.
  • montrez votre appsettings
  • Quel est le problème avec AppSetting ? C'est aussi une raison pourquoi le code ne fonctionne pas ?
  • AppSettings n'est pas faux, c'est juste que les chaînes de connexion sont généralement dans ConnectionStrings comme le montre Kane réponse. Tant que le code ressemble à de la valeur dans la section du fichier de configuration où il est défini, tout correspond.
InformationsquelleAutor thenextmogul | 2013-08-17