Vue d'ensemble de la connexion aux données dans Visual Studio

Mise à jour : novembre 2007

Visual Studio fournit des outils permettant de connecter votre application aux données provenant de nombreuses sources différentes, telles que des bases de données, des services Web et des objets. Si vous utilisez des outils de design de données dans Visual Studio, vous n'avez généralement pas besoin de créer explicitement un objet de connexion pour votre formulaire ou votre composant. L'objet de connexion est généralement créé suite à l'exécution de l'un des Assistant de données ou au déplacement d'objets de données jusqu'à votre formulaire. Pour connecter votre application aux données dans une base de données, un service Web ou un objet, exécutez l'Assistant Configuration de source de données en sélectionnant Ajouter une nouvelle source de données dans la fenêtre Sources de données.

Le schéma suivant affiche le flux standard des opérations lors de la connexion aux données en exécutant une requête TableAdapter pour extraire des données et les afficher sur un formulaire contenu dans une application Windows.

Flux de données dans une application cliente

Dans certaines situations, il peut être utile de créer un objet de connexion sans l'assistance d'outils de design de données. Pour plus d'informations sur la création de connexions par programme, consultez Connexion à une source de données (ADO.NET).

Remarque :

Pour plus d'informations sur la connexion d'applications Web à des données, consultez Accès aux données avec ASP.NET.

Création de connexions

Lors de l'utilisation de Visual Studio, les connexions sont configurées à l'aide de la Ajouter/Modifier une connexion, boîte de dialogue (Général). La boîte de dialogue Ajouter une connexion s'affiche lorsque vous modifiez ou créez des connexions dans l'un des Assistant de données ou dans l'Explorateur de serveurs/Explorateur de bases de données ou lorsque vous modifiez des propriétés de connexion dans la fenêtre Propriétés.

Les connexions de données sont configurées automatiquement lorsque vous exécutez l'une des actions suivantes :

Action

Description

Exécutez l'Assistant Configuration de source de données.

Les connexions sont configurées lorsque le chemin d'accès à la base de données est choisi dans l'Assistant Configuration de source de données. Pour plus d'informations, consultez Comment : établir une connexion à des données d'une base de données.

Exécutez l'Assistant Configuration de TableAdapter.

Les connexions sont créées dans l'Assistant Configuration de TableAdapter. Pour plus d'informations, consultez Comment : créer des TableAdapters.

Exécutez l'Assistant Configuration de requêtes TableAdapter.

Les connexions sont créées dans l'Assistant Configuration de requêtes TableAdapter. Pour plus d'informations, consultez Comment : créer des requêtes TableAdapter.

Faites glisser les éléments depuis la fenêtre Sources de données jusqu'à un formulaire ou jusqu'au Concepteur de composants.

Des objets de connexion sont créés lorsque vous faites glisser des éléments depuis la fenêtre Sources de données jusqu'au Concepteur Windows Forms ou au Concepteur de composants. Pour plus d'informations, consultez Affichage des données sur des formulaires dans les applications Windows.

Ajoutez de nouvelles connexions de données à l'Explorateur de serveurs/Explorateur de bases de données.

Les connexions de données dans l'Explorateur de serveurs/Explorateur de bases de données figurent dans la liste des connexions disponibles dans les Assistants de données. Pour plus d'informations, consultez Comment : ajouter de nouvelles connexions de données dans l'Explorateur de serveurs/Explorateur de bases de données.

Chaînes de connexion

Tous les objets de connexion exposent à peu près les mêmes membres. Toutefois, les membres disponibles spécifiquement dans un objet OleDbConnection dépendent de la source de données à laquelle il est connecté ; toutes les sources de données ne prennent pas en charge tous les membres de la classe OleDbConnection.

ConnectionString est la principale propriété associée à un objet de connexion. Elle se compose d'une chaîne de paires attribut/valeur correspondant aux informations requises pour se connecter à un serveur de base de données et pointer vers une base de données particulière. Une propriété ConnectionString standard peut se présenter de la manière suivante :

Provider=SQLOLEDB.1;Data Source=MySQLServer;Initial Catalog=NORTHWIND;Integrated Security=SSPI

Cette chaîne de connexion particulière spécifie que la connexion doit utiliser la sécurité intégrée de Windows. Une chaîne de connexion peut inclure en lieu et place un nom d'utilisateur et un mot de passe, mais cela est déconseillé, car ces attributs sont ensuite compilés dans votre application et constituent dès lors une brèche potentielle à la sécurité.

Note de sécurité :

Le stockage des détails de la chaîne de connexion (par exemple, un mot de passe) peut affecter la sécurité de votre application. L'utilisation de la sécurité intégrée de Windows constitue un moyen plus sûr de contrôler l'accès à une base de données. Pour plus d'informations, consultez Protection des informations de connexion (ADO.NET).

Les paires attribut/valeur les plus couramment utilisées par OLE DB sont également représentées séparément par une propriété individuelle, telle que DataSource et Database. Lorsque vous utilisez un objet de connexion, vous pouvez au choix définir la propriété ConnectionString comme une chaîne simple ou définir plusieurs propriétés de connexion séparées. (Si votre source de données exige des valeurs de chaîne qui ne sont pas représentées par des propriétés individuelles, vous devez définir la propriété ConnectionString.)

Enregistrement et récupération de chaînes de connexion

Les chaînes de connexion peuvent être stockées dans votre application compilée ou dans le fichier de configuration de l'application. Pour plus d'informations, consultez Comment : enregistrer une chaîne de connexion.

Ouverture et fermeture de connexions

Les deux principales méthodes pour les connexions sont Open et Close. La méthode Open utilise les informations spécifiées dans la propriété ConnectionString pour contacter la source de données et établir une connexion ouverte. La méthode Close arrête la connexion. Il est très important de fermer les connexions parce que la plupart des sources de données ne prennent en charge qu'un nombre limité de connexions ouvertes et que celles-ci consomment des ressources système précieuses.

Si vous utilisez des TableAdapters, des DataAdapter ou des DataCommands, vous n'avez pas besoin d'ouvrir et de fermer explicitement une connexion. Lorsque vous appelez une méthode de ces objets (par exemple, la méthode Fill ou Update d'un adaptateur), elle vérifie si la connexion est déjà ouverte. Si ce n'est pas le cas, l'adaptateur ouvre la connexion, exécute sa logique et la referme.

Les méthodes, telles que Fill n'ouvrent et ne ferment automatiquement une connexion que si elle n'est pas déjà ouverte. Si la connexion est ouverte, les méthodes l'utilisent, mais ne la ferment pas. Cela vous donne ainsi la possibilité d'ouvrir et de fermer les commandes de données vous-même. Vous fermez et ouvrez vous-même les commandes de données si plusieurs adaptateurs se partagent une connexion. Dans ce cas, il est inefficace que chaque adaptateur ouvre et ferme la connexion lorsque vous appelez sa méthode Fill. Au lieu de cela, vous pouvez ouvrir la connexion, appeler la méthode Fill de chaque adaptateur, puis fermer la connexion lorsque vous avez terminé.

Groupement de connexions

Il arrive souvent dans les applications que différents utilisateurs effectuent le même type d'accès à une base de données. Par exemple, de nombreux utilisateurs peuvent interroger la même base de données pour obtenir les mêmes données. Dans ces cas-là, il est possible d'augmenter les performances de l'application en faisant en sorte qu'elle partage des connexions à la source de données, autrement dit, en « groupant » les connexions (création d'un groupement). Le temps système nécessaire à l'ouverture et à la fermeture d'une connexion par chaque utilisateur peut avoir un effet négatif sur les performances de l'application.

Si vous utilisez la classe OleDbConnection, OdbcConnection ou OracleConnection, le groupement de connexions est automatiquement géré par le fournisseur, ce qui vous évite d'avoir à le faire vous-même.

Si vous utilisez la classe SqlConnection, le groupement de connexions est géré implicitement, mais il vous fournit également des options vous permettant de le gérer vous-même. Pour plus d'informations, consultez Regroupement de connexions SQL Server (ADO.NET).

Transactions

Les objets de connexion prennent en charge les transactions à l'aide d'une méthode BeginTransaction qui crée un objet de transaction (par exemple un objet SqlTransaction). L'objet de transaction prend à son tour en charge des méthodes vous permettant de valider ou restaurer les transactions.

Les transactions sont gérées dans le code. Pour plus d'informations, consultez Transactions et concurrence (ADO.NET).

Le .NET Framework version 2.0 comprend une nouvelle infrastructure de transaction, accessible par l'espace de noms System.Transactions. Cette infrastructure expose les transactions de manière complètement intégrée dans le .NET Framework, ADO.NET compris. Pour plus d'informations, consultez Intégration de System.Transactions à SQL Server (ADO.NET).

Informations de connexion et sécurité

L'ouverture d'une connexion implique un accès à une base de données, qui est une ressource importante ; c'est pourquoi la configuration et l'utilisation d'une connexion soulèvent toujours des questions de sécurité.

La manière dont vous sécurisez l'application et son accès à la source de données est déterminée par l'architecture de votre système. Dans une application Web, par exemple, les utilisateurs se voient généralement octroyer un accès anonyme aux services IIS (Internet Information Services) de Microsoft et ne fournissent donc pas d'informations d'identification de sécurité. Dans ce cas, votre application tient à jour ses propres informations de connexion et les utilise (à la place d'informations spécifiques à un utilisateur) pour ouvrir la connexion et accéder à la base de données.

Note de sécurité :

Le stockage des détails de la chaîne de connexion (par exemple, un mot de passe) peut affecter la sécurité de votre application. L'utilisation de la sécurité intégrée de Windows constitue un moyen plus sûr de contrôler l'accès à une base de données. Pour plus d'informations, consultez Protection des informations de connexion (ADO.NET).

Dans un intranet ou dans des applications à plusieurs couches, vous pouvez tirer avantage de l'option de sécurité intégrée fournie par Windows, IIS et SQL Server. Dans ce modèle, les informations d'identification d'authentification d'un utilisateur pour le réseau local sont également utilisées pour accéder aux ressources de base de données, et aucun nom d'utilisateur ou mot de passe n'est indiqué dans la chaîne de connexion (en règle générale, les autorisations sur l'ordinateur serveur de la base de données sont accordées par le biais de groupes, de sorte que vous n'avez pas besoin de définir des autorisations individuelles pour chaque utilisateur susceptible d'avoir accès à la base de données). Dans ce modèle, vous n'avez nullement besoin d'enregistrer des informations sur la connexion, et aucune mesure supplémentaire n'est requise pour protéger les informations de la chaîne de connexion.

Pour plus d'informations sur la sécurité, consultez les pages suivantes :

Connexions au moment du design dans l'Explorateur de serveurs/Explorateur de bases de données

L'Explorateur de serveurs/Explorateur de bases de données vous offre la possibilité de créer des connexions au moment du design aux sources de données. Il vous permet ainsi de parcourir les sources de données disponibles, d'afficher des informations sur les tables, les colonnes et d'autres éléments qu'elles contiennent, et enfin de modifier et de créer des éléments de base de données.

Votre application n'utilise pas directement les connexions disponibles dans l'Explorateur de serveurs/Explorateur de bases de données. Visual Studio se sert de ces connexions pour utiliser votre base de données au moment du design. Pour plus d'informations, consultez Visual Database Tools.

Par exemple, vous pouvez utiliser l'Explorateur de serveurs/Explorateur de bases de données au moment du design pour créer une connexion à une base de données. Ultérieurement, lorsque vous créez un formulaire, vous pouvez naviguer dans la base de données, sélectionner des colonnes d'une table et les faire glisser jusqu'au Concepteur de DataSet. Cela entraîne la création d'un TableAdapter dans votre groupe de données, ainsi que d'un nouvel objet de connexion (qui fait partie du TableAdapter que vous venez de créer).

Les informations relatives aux connexions au moment du design sont enregistrées dans votre ordinateur local indépendamment de tout projet ou solution. Par conséquent, une fois que vous avez établi une connexion au moment du design en travaillant dans une application, elle apparaît dans l'Explorateur de serveurs/Explorateur de bases de données chaque fois que vous travaillez dans Visual Studio (tant que le serveur vers lequel elle pointe reste disponible). Pour plus d'informations sur l'utilisation d'Explorateur de serveurs/Explorateur de bases de données et la création de connexions au moment du design, consultez Comment : ajouter de nouvelles connexions de données dans l'Explorateur de serveurs/Explorateur de bases de données.

Voir aussi

Tâches

Comment : établir une connexion à des données d'une base de données

Procédure pas à pas : connexion aux données dans une base de données

Autres ressources

Connexion aux données dans Visual Studio

Accès aux données avec ASP.NET

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Affichage des données sur des formulaires dans les applications Windows

Modification des données dans votre application

Validation des données

Enregistrement des données