IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

[ASP.NET2] [C#] - Connexion à une base SQL en local


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut [ASP.NET2] [C#] - Connexion à une base SQL en local
    Bonjour,

    Je n'arrive pas à me connecter à une base de données locales (un fichier .mdf sur ma machine). Je travaille sous Visual Studio et le code est en C#.

    Voici ce que j'ai codé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public void bdd()
        {
            string connexion_string = @"data source=.\W260112; initial catalog=D:\Profiles\test\Mes documents\Visual Studio*2005\WebSites\Admin\App_Data\intranet.mdf; integrated security=true";
                SqlConnection cx;
                cx=new SqlConnection();
                cx.ConnectionString=connexion_string;
                cx.Open();
     
     
                string rq = "select count(*) from salaries";
                SqlCommand sql;
                sql = new SqlCommand();
                sql.CommandText = rq;
                sql.CommandType = CommandType.Text;
                sql.Connection = cx;
                int cu = (int)sql.ExecuteScalar();
                info.Text = String.Format("il y a : ", cu, "salaries");
                cx.Close();
     
        }
    Mon problème se situe au niveau du chemin d'accès à la base. Normalement, j'ai accès à cette base via les identifiants de connexion Windows. N'y connaissant rien (ou peu) en .NET, j'ai suivi un tutoriel... Toutes mes tentatives de connexions échouent (j'ai essayé plusieurs codes différent).

    Comment s'y prendre? Merci.

    Erreur générée:
    [SqlException (0x80131904): Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)]



    PS: normalement, il serait judicieux de faire des try catch mais j'ai commencé par le plus simple...

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Même si c'est pas logique, active les connexions à distance sur ta base de données et redémarre le service de ta base de données.

    Si ça marche pas, y a un truc que je fais encore assez souvent pour être sûr que mon application pourra se connecter à une base de données: Sous visual studio, je vais dans Tools/Connect to database et je remplis les champs pour être sûr qu'au moins là j'arrive à me connecter à la base de données.
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut
    un énième redémarrage de la machine a changé la donne... apparament il y a avait un souci avec sql express 2005.

    Maintenant je n'arrive toujours pas à me connecter à ma base de données "fichier".

    Voici l'erreur : [SqlException (0x80131904): Impossible d'ouvrir la base de données 'intranet2.mdf' demandée par la connexion. La connexion a échoué.

    j'ai essayé la méthode citée au dessus, ça ne fonctionne pas.

    Je ne dois pas entrer les bon paramètre de connexion à la base...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string connexion_string = @"data source=W260112\SQLEXPRESS; initial catalog=intranet2.mdf; integrated security=true";


    J'ai suivi ce sujet : http://www.developpez.net/forums/showthread.php?t=97756
    Mais ça ne fonctionne pas :

    Échec de l'ouverture de session de l'utilisateur 'dev'. L'utilisateur n'est pas associé à une connexion SQL Server approuvée.

  4. #4
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 174
    Points : 62
    Points
    62
    Par défaut
    Je réitère ma question car je rencontre toujours ce problème

    Le chemin direct au fichier est : D:\profiles\skystef\Visual Studio\Intranet\App_Data\Intranet.mdf

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Dans les propriétés du serveur, dans le sous menu "sécurité"
    choisir "Mode d'authentification SQL Server et Windows". J'avais le même
    problème (le dernier) et ca a arrangé.
    PS : j'ai sqlserver express

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Points : 55
    Points
    55
    Par défaut Problème accès sl server
    Bonjour, moi j'ai le même type de soucis, quand je souhaite me connecter à ma bd via Visual Web dev Express, ya pas moyen :

    voici mon code :

    String connectionString = @"data source=(localhost)\SQLEXPRESS; initial catalog=ASPNETDB.MDF;integrated security=true";

    SqlConnection myConnection = new SqlConnection(connectionString);
    SqlCommand myCommand = new SqlCommand("INSERT INTO Client VALUES (toto,toto,toto)", myConnection);

    myCommand.Connection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();


    En fait je crois que mon souci viens surtout de la façon de décrire connectionString, mais je ne sais pas comment définir l'adresse du serveur de Bd,

    par ailleurs j'ai une erreur qui me dis :
    Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)

    il est dis plus haut dans le forum d'ouvrir les connexions à distance. Cependant sous l'interface VWdev express j'ai pas moyen d'acéder au propiété de la connexion Bd, et j'ai regardé sous sql server j'ai pas trouvé pourrrais-je avoir des détails sur la marche a suivre commen connaitre le nom du serveur sur lequel est la base , ....


    merci d'avance je suis en galère depuis ce matin

  7. #7
    Membre actif
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Points : 214
    Points
    214
    Par défaut
    Hum je connais pas bien SQL server 2005 mais il me semble que le mieux serait d'aattacher le fichier .MDF à une BD (création) et ensuite de préciser "initial catalog = nomBD"

    Peut être en essayant simplement :

    "initial catalog=ASPNETDB"

    ou

    "initial catalog=intranet2"

  8. #8
    Membre régulier Avatar de libremax
    Profil pro
    Chargé de projets
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de projets

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 91
    Points
    91
    Par défaut re
    bonjour,
    Je suis en vb 2008 express
    pourquoi String connectionString = @"data source=(localhost)\SQLEXPRESS; initial catalog=ASPNETDB.MDF;integrated security=true";
    en vb :
    data source=(localhost)\SQLEXPRESS; initialcatalog=nomdetabase;integrated security=true
    pas de .mdf juste le nom qui est affiché sur sql serveur 2005
    moi lorsque je me connect c'est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Dim nom_connection As String = "Data Source=SERVEUR\SQLEXPRESS ; Initial catalog=maintenanceSQL ; integrated security=sspi"
    Dim maconextion As SqlConnection
    Dim macommande As SqlCommand
    Dim moncurseur As SqlDataReader
    monadapteur = New SqlDataAdapter
    'on selectionne la connextion
    maconextion = New SqlConnection(nom_connection)
    'on l'ouvre
    maconextion.Open()
    'on créer une commande
    macommande = maconextion.CreateCommand()
    'on choisie une commande procédure stocké
    macommande.CommandType = CommandType.StoredProcedure
    'elle se nome Planning de fabrication
    macommande.CommandText = "planning de fabrication"
    'elle requiére un paramétre @ali qui vaut "oui" ou "non"
    macommande.Parameters.AddWithValue("@ali", TextBox1.Text)
    monadapteur.SelectCommand = macommande
    'création de la base en mémoire
    Dim mondataset As DataSet
    mondataset = New DataSet
    'on crée la table "nouveau" basé sur mon dataset donc la procédure stocké planning de fabrication
    monadapteur.Fill(mondataset, "nouveau")
    'on referme la connextion 
    maconextion.Close()
    reste plusqu'a transferer mondataset dans un listbox
    ListBox1.DataSource = mondataset.Tables("nouveau")
    voila comment je fait pour me connecter
    j'espere que cela t'aidera.
    Débutant un jour, débutant toujours car chaques jours qui passent nous en apprend un peu plus.

  9. #9
    Membre actif
    Avatar de Ecosmose
    Homme Profil pro
    Archi SI / Soft / Réseau / SCADA /Automate
    Inscrit en
    Janvier 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Archi SI / Soft / Réseau / SCADA /Automate
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 170
    Points : 214
    Points
    214
    Par défaut
    Bin oui moi aussi je vois pas pourquoi exploiter le fichier .MDF a part pour ne pas exploiter le SGBD pour modifier les données (comme des batch de sauvegarde de BD ou des lots d'exportation)...à suivre

  10. #10
    Membre à l'essai
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Je travaille sur un projet avec Visual Studio 2008 et SQL Server management Studio Express (developpement d'un site site web en ASP). J'avais mal défini le contenu du connectionString dans le web.config. Résultat (l'exception est là même que sur le premier post):

    Erreur du serveur dans l'application '/Journal'.
    Nom d'objet 'article' non valide.
    Description : Une exception non gérée s'est produite au moment de
    l'exécution de la demande Web actuelle. Contrôlez la trace de la pile
    pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.Data.SqlClient.SqlException: Nom
    d'objet 'article' non valide.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la
    demande Web actuelle. Les informations relatives à l'origine et
    l'emplacement de l'exception peuvent être identifiées en utilisant la
    trace de la pile d'exception ci-dessous.

    Trace de la pile:

    [SqlException (0x80131904): Nom d'objet 'article' non valide.]
    System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
    Boolean breakConnection) +925466
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
    exception, Boolean breakConnection) +800118
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
    stateObj) +186
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,
    SqlCommand cmdHandler, SqlDataReader dataStream,
    BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
    stateObj) +1932
    System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
    System.Data.SqlClient.SqlDataReader.get_MetaData() +62
    System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader
    ds, RunBehavior runBehavior, String resetOptionsString) +297
    System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
    cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
    async) +1005
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
    cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
    method, DbAsyncResult result) +132
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
    cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
    method) +32
    System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
    behavior, String method) +122
    System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior
    behavior) +12
    System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior
    behavior) +7
    System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,
    DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String
    srcTable, IDbCommand command, CommandBehavior behavior) +141
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32
    startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
    CommandBehavior behavior) +137
    System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
    System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments
    arguments) +1770
    System.Web.UI.DataSourceView.Select(DataSourceSelectArguments
    arguments, DataSourceViewSelectCallback callback) +17
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
    System.Web.UI.WebControls.GridView.DataBind() +4
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
    System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
    System.Web.UI.Control.EnsureChildControls() +87
    System.Web.UI.Control.PreRenderRecursiveInternal() +50
    System.Web.UI.Control.PreRenderRecursiveInternal() +170
    System.Web.UI.Control.PreRenderRecursiveInternal() +170
    System.Web.UI.Control.PreRenderRecursiveInternal() +170
    System.Web.UI.Control.PreRenderRecursiveInternal() +170
    System.Web.UI.Page.ProcessRequestMain(Boolean
    includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    +2041


    Informations sur la version : Version Microsoft .NET Framework
    :2.0.50727.1433; Version ASP.NET :2.0.50727.1433
    J'ai résolu l'exception en changeant quelques parametres du connectionString depuis les données des propriétés de l'Explorateur d'objet de SQL Server 2005.

    Le Data Source de VS08 correspond au nom du serveur de SSMSE.
    Le Initial Catalog de VS08 correspond au nom de la Base de données de SSMSE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <add name="nhweb_DBConnectionString" connectionString="Data Source=PC-DE-VOTRENOM;Initial Catalog=NomDeLaBase;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient" />

Discussions similaires

  1. Problème de connexion à une base SQL Server 2005
    Par tatayecorp dans le forum ASP
    Réponses: 2
    Dernier message: 19/04/2008, 00h28
  2. connexion à une base sql server 2005 distante
    Par jeandu69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/04/2008, 12h46
  3. connexion à une base sql server via access
    Par gunico dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/03/2006, 11h28
  4. connexion à une base Sql Server via Access et ADODB
    Par gunico dans le forum Projets ADP
    Réponses: 5
    Dernier message: 28/02/2006, 12h26
  5. probleme de connexion à une base sql avec mot de passe
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/12/2005, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo