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

C# Discussion :

Problème Accés bd sql server


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut Problème Accés bd sql server
    Bonjour,

    j'essaye un exemple msdn(formulaire maitre détail),mais je bloque depuis quelques jours au niveau de l'acces a la bd.

    plus exactement dans l'instruction
    le message est le suivant:
    Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: SQL Network Interfaces, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
    je ne travailles pas en reseau
    Quelqu'un peut il me dire pourquoi?

    Merci

    voici mon app.config et mon programme


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
      </configSections>
      <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.essaiConnectionString"
          connectionString="Data Source=C:\users\Northwind.sdf"
          providerName="Microsoft.SqlServerCe.Client.3.5" />
      </connectionStrings>
    </configuration>

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Configuration;
    using System.Configuration.Assemblies;
    using System.Data.SqlServerCe;
    using System.Text.RegularExpressions;
    using System.Data.SqlTypes;
    using System.Runtime.InteropServices;
     
     
     
    public class Form1 : System.Windows.Forms.Form
    {
        private DataGridView masterDataGridView = new DataGridView();
        private BindingSource masterBindingSource = new BindingSource();
        private DataGridView detailsDataGridView = new DataGridView();
        private BindingSource detailsBindingSource = new BindingSource();
     
        public static void Main()
        {
            Application.Run(new Form1());
        }
     
     
     
     
        // Initializes the form.
        public Form1()
        {
            masterDataGridView.Dock = DockStyle.Fill;
            detailsDataGridView.Dock = DockStyle.Fill;
     
            SplitContainer splitContainer1 = new SplitContainer();
            splitContainer1.Dock = DockStyle.Fill;
            splitContainer1.Orientation = Orientation.Horizontal;
            splitContainer1.Panel1.Controls.Add(masterDataGridView);
            splitContainer1.Panel2.Controls.Add(detailsDataGridView);
     
            this.Controls.Add(splitContainer1);
            this.Load += new System.EventHandler(Form1_Load);
            this.Text = "DataGridView master/detail demo";
        }
        private void GetData()
        {
               string connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
               MessageBox.Show("conn=" + connectionString);
               SqlConnection connection = new SqlConnection(connectionString);
               connection.Open();
     
                // Create a DataSet.
                DataSet data = new DataSet();
                data.Locale = System.Globalization.CultureInfo.InvariantCulture;
     
                // Add data from the Customers table to the DataSet.
                SqlDataAdapter masterDataAdapter = new SqlDataAdapter("select * from Customers", connectionString);
                masterDataAdapter.Fill(data, "Customers");
     
                // Add data from the Orders table to the DataSet.
                SqlDataAdapter detailsDataAdapter = new
                    SqlDataAdapter("select * from Orders", connectionString);
                detailsDataAdapter.Fill(data, "Orders");
     
                // Establish a relationship between the two tables.
                DataRelation relation = new DataRelation("CustomersOrders",
                    data.Tables["Customers"].Columns["CustomerID"],
                    data.Tables["Orders"].Columns["CustomerID"]);
                data.Relations.Add(relation);
     
                // Bind the master data connector to the Customers table.
                masterBindingSource.DataSource = data;
                masterBindingSource.DataMember = "Customers";
     
                // Bind the details data connector to the master data connector,
                // using the DataRelation name to filter the information in the 
                // details table based on the current row in the master table. 
                detailsBindingSource.DataSource = masterBindingSource;
                detailsBindingSource.DataMember = "CustomersOrders";
                connection.Dispose();
        }
        private void Form1_Load(object sender, System.EventArgs e)
        {
            // Bind the DataGridView controls to the BindingSource
            // components and load the data from the database.
            masterDataGridView.DataSource = masterBindingSource;
            detailsDataGridView.DataSource = detailsBindingSource;
            GetData();
     
            // Resize the master DataGridView columns to fit the newly loaded data.
            masterDataGridView.AutoResizeColumns();
     
            // Configure the details DataGridView so that its columns automatically
            // adjust their widths when the data changes.
            detailsDataGridView.AutoSizeColumnsMode =
                DataGridViewAutoSizeColumnsMode.AllCells;
        }

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Tu utilise une SqlConnection alors que tu travailles avec Sql Compact Edition...

    Essaye avec une SqlCeConnection

  3. #3
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    correction

    J'ai le même probleme même avec sqlceconnection

  4. #4
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Tu dois également utiliser SqlCeAdapter au lieu de SqlAdapter...

    Même si de façon plus générique, tu devrais plutôt utiliser les classes moins spécialisées du type DbAdapter, DbConnection, etc...

  5. #5
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    Bonjour,

    Merci pour vos suggestions.

    la j'ai pu avancer mais j'ai un autre message d'erreur:
    Échec d'une tentative d'attachement d'une base de données nommée automatiquement pour le fichier C:\users\Northwind.sdf. Il existe une base de données du même nom ou le fichier spécifié ne peut être ouvert ou il se trouve sur un partage UNC.
    je ne comprends pas!

  6. #6
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Le fichier ne serait-il pas déjà en cours d'utilisation ?

    Ouvert dans Management Studio par exemple ?

  7. #7
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    J'ai pas de management studio

    j'ai reinstallé visual c# 2010 avec le sql server qui vient avec, mais malheureusement le meme message qu'au debut

    Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: SQL Network Interfaces, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
    malgré toutes les recherches faites sur le web,je ne trouve pas la solution
    je suis découragé

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut
    bonjour deja moi cette ligne me choque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
    car dans ton fichier de config tu n'as qu'uneseule définition donc index 0 de ConnectionString, mais bon visiblement vu le second message ca à l'air de fonctionner.
    Ensute vérifie dans visualstudio si celui-ci est capable de se connecter a la source de donné, demémoire les fichier sdf ne sont pas rattaché à un serveur SQL. Donc ca doit juste être un problème d'accées au fichier (droit ou path)
    Regarde aussi la version de l'assembly SQLCe que tu as référencé ca vient peut-être d'un problème de version.

  9. #9
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
    cette ligne fonctionne car je peut l'afficher.
    je peux aussi acceder a la bd dans visual studio, le test de connection se fait avec succes.

    pour ce qui est de l'assembly sqlce,je l'ai enlevée,je travaille seuleument avec sql
    sqlconnection,sqldatadapter,etc

    je vous joint mes deux programmes:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
      </configSections>
      <connectionStrings>
        <add name="connection" providerName="System.Data.SqlClient"
            connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=C:\Users\northwind.sdf;Integrated Security=true;"/>
        </connectionStrings>
    </configuration>

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Configuration;
    using System.Configuration.Assemblies;
    using System.Text.RegularExpressions;
    using System.Data.SqlTypes;
    using System.Runtime.InteropServices;
     
     
     
    public class Form1 : System.Windows.Forms.Form
    {
        private DataGridView masterDataGridView = new DataGridView();
        private BindingSource masterBindingSource = new BindingSource();
        private DataGridView detailsDataGridView = new DataGridView();
        private BindingSource detailsBindingSource = new BindingSource();
     
        public static void Main()
        {
            Application.Run(new Form1());
        }
     
     
     
     
        // Initializes the form.
        public Form1()
        {
            masterDataGridView.Dock = DockStyle.Fill;
            detailsDataGridView.Dock = DockStyle.Fill;
     
            SplitContainer splitContainer1 = new SplitContainer();
            splitContainer1.Dock = DockStyle.Fill;
            splitContainer1.Orientation = Orientation.Horizontal;
            splitContainer1.Panel1.Controls.Add(masterDataGridView);
            splitContainer1.Panel2.Controls.Add(detailsDataGridView);
     
            this.Controls.Add(splitContainer1);
            this.Load += new System.EventHandler(Form1_Load);
            this.Text = "DataGridView master/detail demo";
        }
        private void GetData()
        {
     
     
     
            string connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
               MessageBox.Show("conn=" + connectionString);
     
               SqlConnection connection = new SqlConnection(connectionString);
     
     
     
     
               connection.Open();
     
                // Create a DataSet.
                DataSet data = new DataSet();
                data.Locale = System.Globalization.CultureInfo.InvariantCulture;
     
                // Add data from the Customers table to the DataSet.
                SqlDataAdapter masterDataAdapter = new SqlDataAdapter("select * from Customers", connectionString);
                masterDataAdapter.Fill(data, "Customers");
     
                // Add data from the Orders table to the DataSet.
                SqlDataAdapter detailsDataAdapter = new
                    SqlDataAdapter("select * from Orders", connectionString);
                detailsDataAdapter.Fill(data, "Orders");
     
                // Establish a relationship between the two tables.
                DataRelation relation = new DataRelation("CustomersOrders",
                    data.Tables["Customers"].Columns["CustomerID"],
                    data.Tables["Orders"].Columns["CustomerID"]);
                data.Relations.Add(relation);
     
                // Bind the master data connector to the Customers table.
                masterBindingSource.DataSource = data;
                masterBindingSource.DataMember = "Customers";
     
                // Bind the details data connector to the master data connector,
                // using the DataRelation name to filter the information in the 
                // details table based on the current row in the master table. 
                detailsBindingSource.DataSource = masterBindingSource;
                detailsBindingSource.DataMember = "CustomersOrders";
                connection.Dispose();
        }
        private void Form1_Load(object sender, System.EventArgs e)
        {
            // Bind the DataGridView controls to the BindingSource
            // components and load the data from the database.
            masterDataGridView.DataSource = masterBindingSource;
            detailsDataGridView.DataSource = detailsBindingSource;
            GetData();
     
            // Resize the master DataGridView columns to fit the newly loaded data.
            masterDataGridView.AutoResizeColumns();
     
            // Configure the details DataGridView so that its columns automatically
            // adjust their widths when the data changes.
            detailsDataGridView.AutoSizeColumnsMode =
                DataGridViewAutoSizeColumnsMode.AllCells;
        }
    }

  10. #10
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Un fichier .sdf est un fichier SQL CE !

    Pour travailler avec Sql Server (Express ou autre), il faut modifier ton connection string. Le Initial Catalog doit correspondre au nom de la table et plus à un nom de fichier..

    Par ailleurs, merci de penser à utiliser les balises [Code] dans tes messages.

  11. #11
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut
    Bonjour

    J'ai pu résoudre le problème, voici la solution pour ceux que ça intéresse:
    J'ai crée un nouveau formulaire contenant un datagridview par l'assistant msdn et par la suite j'ai récupéré app.config qui est le suivant.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
      </configSections>
      <connectionStrings>
        <add name="testdb.Properties.Settings.NorthwindConnectionString"
            connectionString="Data Source=|DataDirectory|\Northwind.sdf"
            providerName="Microsoft.SqlServerCe.Client.3.5" />
      </connectionStrings>
    </configuration>
    de plus, j'ai copié la bd northwind dans mon espace de travail.

    et J'utlise Sqlce bien sur.

    Merci

    Mais la je bloque au niveau de data relation.
    J'ai le message suivant:
    L'argument 'column' ne peut pas être null.
    Nom du paramètre : column

    Alors que mon dataset contient bien les données et il n'ya pas de colonnes nulles dans les tables Orders et Customers car J'arrive a afficher le contenu avec des messagebox..

    Voici mon bout de code:

    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
    // Add data from the Customers table to the DataSet.
                SqlCeDataAdapter  masterDataAdapter = new SqlCeDataAdapter ("select * from Customers", connectionString);
                masterDataAdapter.Fill(data, "Customers");
     
                // Add data from the Orders table to the DataSet.
                SqlCeDataAdapter detailsDataAdapter = new SqlCeDataAdapter("select * from Orders", connectionString);
                detailsDataAdapter.Fill(data, "Orders");
     
     
                MessageBox.Show("cdst=" + data.Tables["Customers"].Rows[0][0]);
                MessageBox.Show("cdst=" + data.Tables["Customers"].Rows[0][1]);
     
                MessageBox.Show("cdst=" + data.Tables["Orders"].Rows[0][0]);
                MessageBox.Show("cdst=" + data.Tables["Orders"].Rows[0][1]);
     
     
                // Establish a relationship between the two tables.
                DataRelation relation = new DataRelation("CustomersOrders",data.Tables["Customers"].Columns["CustomerID"],data.Tables["Orders"].Columns["CustomerID"]);
    Merci de votre aide

  12. #12
    Membre très actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Décembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 111
    Par défaut sql et C#
    salut moi je penses que ton erreur provient de ta chaîne de connection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection connection = new SqlConnection(connectionString);

  13. #13
    Membre averti
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Par défaut Probleme Data relation
    Bonjour,

    je n'ai plus de sqlconnection, ma chaine est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCeConnection connection = new SqlCeConnection(connectionString);
    marche aussi et j'arrive a remplir le dataset

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/02/2008, 15h23
  2. Problème de connection à SQL Server
    Par wsangli dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 12/08/2005, 17h19
  3. [VB.NET] Problème de connexion à SQL Server
    Par Nesmontou dans le forum ASP.NET
    Réponses: 8
    Dernier message: 29/07/2005, 10h12
  4. Problème Access to Sql Server
    Par vuldos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/08/2004, 15h56
  5. Réponses: 3
    Dernier message: 18/11/2002, 16h36

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