Problème d'accés à une Base de données (SQL SERVER EXPRESS)

issousam Messages postés 17 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 3 septembre 2008 - 9 juil. 2008 à 15:59
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 13 juil. 2008 à 22:11
Bonjour,
je suis tout nouveau dans la programmation ASP.NET et j'ai un problème au niveau de l'accés à ma base de données.

Voilà l'erreur :
Server Error in '/' Application.
<hr width= "100%" color="silver" size="1" />Impossible d'ouvrir la base de données "document" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'sa'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Impossible d'ouvrir la base de données "document" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'sa'.
Source Error:

Line 25:         {
Line 26:             SqlCommand cmd  = new SqlCommand("SELECT COUNT(*) FROM authors", cn);
Line 27:             cn.Open();
Line 28:             SqlDataReader rdr =  cmd.ExecuteReader(CommandBehavior.CloseConnection);
Line 29:             rdr.Read();


Source File:
x:\Inetpub\wwwroot\SITE_COTIC\Savoirs\Documents\ListeDoc.ascx    Line: 27
Stack Trace:






[SqlException (0x80131904): Impossible d'ouvrir la base de données "document" demandée par la connexion. La connexion a échoué.
Échec de l'ouverture de session de l'utilisateur 'sa'.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +171
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +199
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2406
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +34
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +223
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +371
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +184
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +193
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +502
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +429
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +70
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +510
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +85
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89
System.Data.SqlClient.SqlConnection.Open() +160
ASP.documents_listedoc_ascx.Page_Load(Object sender, EventArgs e) in x:\Inetpub\wwwroot\SITE_COTIC\Savoirs\Documents\ListeDoc.ascx:27
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +49
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3745





Version Information:

 Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832
et voici le code que j'utilise pour ma connexion :



protected void Page_Load(object sender, EventArgs e) {




using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectString"].ToString())) {




SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM document", cn);

cn.Open();

SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);


rdr.Read();

Response.Write(rdr[0].ToString()); //read a value



}

}




Et le fichier web.config :

<connectionStrings>
   
  </connectionStrings>
<system.web>
<compilation
         defaultLanguage="c#"
         debug="true"
         strict="false"
         explicit="true"
    />

   <namespaces>
    <clear/>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
               
   </namespaces>
  

<customErrors
      mode="Off"
      defaultRedirect="Erreur.htm"
    >
    <error
        statusCode="404"
        redirect="Erreur404.htm"
      />
    </customErrors>
<trace
        enabled="false"
        requestLimit="10"
        pageOutput="false"
        traceMode="SortByTime"
  localOnly="true"
    />
    <sessionState
            mode="InProc"
            stateConnectionString="tcpip=?????"
            sqlConnectionString="data source=L'adresse IP de mon serveur"
            cookieless="false"
            timeout="20"
    />
    <globalization
            requestEncoding="utf-8"
            responseEncoding="utf-8"
   />
 </system.web>
</configuration>

Voila, et je developpe en langage C# sous l'environnement Web Matrix et, j'accède à ma base de données via une connexion à un serveur (connexion machine/serveur avec un switch) qui heberge SQL SERVER EXPRESS 2005, et que j'utilise une authentification SQL (avec id et mot de passe).


Merci d'avance pour vos reponses,
Ca m'aiderait vraiment à avancer dans mon projet...


Je vous suis déjà tres reconnaissant pour l'existence de ce genre de forum...
A voir également:

1 réponse

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 juil. 2008 à 22:11
Salut,

Utiliser le compte sa pour la connexion depuis l'application est suicidaire.
Sinon "Database=ma table" : "database" veut dire "base de données", pas "table".
A moins que la base s'appelle elle aussi "document", je crois que ta chaîne de connexion est mauvaise.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous