..


Liens sponsorisés

Gestion des connexions aux bases de données avec ADO.NET

Dans la leçon précédente, nous avons vu comment lier une collection de statique (aussi appelé en mémoire) à différents contrôles côté serveur. Bien que ce type d'opération peut être utile dans certains contextes, cependant, vient souvent de la nécessité de lier des contrôles aux différentes collections d'objets provenant d'autres sources, souvent à partir d'un base de données.

En plus d'inclure des bibliothèques de classes pour développer des applications de bureau (Windows Forms) et la gestion des requêtes HTTP (ASP.NET), le. NET Framework inclut également une bibliothèque qui supporte la connexion à une grande variété de bases de données et est appelée ADO.NET (Active Data Objects. NET). Cette technologie est basée sur trois fonctions principales: la connexion à une base de données, l'interrogation d'une base de données et gestion des résultats.

Lorsque vous souhaitez interagir avec une base de données, vous devez vous y connecter. La connexion nécessite l'identification de l'emplacement de la base, mais peut aussi demander pour la gestion de la sécurité et des autres repose complexes. Tous ces éléments sont gérés dans le cadre du processus de connexion à une base de données. Les informations de connexion est généralement passée comme une chaîne dont le contenu est utilisé pour régler les différents paramètres.

Alors que dans le passé vous aviez à écrire manuellement le code pour accéder à une base de données via ADO.NET en spécifiant le type de base de données vous souhaitez vous connecter automatiquement et de définir les propriétés sont adaptées pour ce type de connexion.

Il existe plusieurs types de bases de données supportées:

  • ODBC Data Provider
  • OLE DB fournisseur de données
  • OracleClient fournisseur de données
  • Fournisseur de données SqlClient
  • SQL Server CE Fournisseur de données
Ces types définis dans le fichier machine.config cadeau susmentionnés





 <configuration>

 





 <configSections>

 





 Nom de section <= "System.Data.Odbc"

 





 type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 Nom de section <= "System.Data.OleDb" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 Nom de section <= "System.Data.OracleClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ..."/>

 





 Nom de section <= "System.Data.SqlClient" type = "







 System.Data.Common.DbProviderConfigurationHandler, ...

 



 "/>

 





 <configSections />

 





 <system.data>

 





 <DbProviderFactories>

 





 <Ajouter name = "Microsoft SQL Server Compact fournisseur de données« invariant = "







 System.Data.SqlServerCe.3.5 "

 





 type = "System.Data.SqlServerCe.SqlCeProviderFactory ..." />

 





 </ DbProviderFactories>

 





 </ System.Data> <







 / Configuration>>



Pour créer la connexion à la base doit donc utiliser le composant de droite. Avec la disponibilité de la connexion que vous pouvez ensuite utiliser pour accéder à la base de données. Par exemple, si notre ordinateur local d'hébergement d'une base de données SQL Server appelée DB_TEST doit entrer dans une éventuelle notre application de la chaîne de connexion suivante






 <configuration>

 





 <connectionStrings>

 





 <Ajouter un nom = "test"

 





 connectionString = "server = (local);







 Integrated Security = SSPI; base de données DB_TEST = "/>

 





 </ ConnectionStrings>







 </ Configuration>



A ce stade, vous pouvez ouvrir la connexion et d'avoir la base de données pour l'exécution des opérations que nous voulons.

La plupart des bases de données appuient le langage SQL (Structured Query Language) pour faire des requêtes, des modifications, nouvelles insertions et suppressions de données. Ces commandes ont généralement une forme similaire à la suivante

 



 SELECT * FROM clients WHERE Nom = 'Smith'

 
où la clientèle est une table dans une base de données. Cette commande prend une liste de clients dont le nom est Smith. Pour obtenir ces données au sein de notre application d'un nous écrivons le code suivant





 TestDBApp classe







 {



  



 static void Main ()



  



 {



    



 DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");



    



 en utilisant (DbConnection conn = dbProviderFactory.CreateConnection ())



    



 {



      



 string s = ConfigurationManager.ConnectionStrings ["test"] ConnectionString.;



      



 conn.ConnectionString = s;



      



 conn.Open ();



      



 DbCommand cmd = conn.CreateCommand ();



      



 cmd.CommandText = "SELECT * FROM clients WHERE Nom = 'Smith'";



      



 DbDataReader lecteur = cmd.ExecuteReader ();



      



 / / Utilisation du lecteur pour accéder aux données



    



 }



  



 }







 }



La commande (cmd) en utilisant la méthode ExecuteReader provoque l'envoi de nos requêtes de bases de données. Les résultats dans ce cas, sont obtenus par une instance de la classe IDataReader, mais vous pouvez également les gérer à travers une autre classe appelée DataSet.

Le IDataReader est indiqué d'effectuer des itérations sur les résultats d'une requête. En particulier, il expose la méthode Read qui parcourt une lignes à la fois pour inconvénient est que sequenziale.Lo lors de la numérisation n'est pas possible de revenir à une ligne précédente et de lignes également retourné sont en lecture seule afin que vous ne pouvez pas changer la contenu.

L'alternative est la IDataReader au DataSet, ce qui permet la gestion d'un ensemble de données déconnectées. ADO.NET est conçu principalement pour soutenir des applications très évolutives et l'un des principaux problèmes d'évolutivité est la limite pour le nombre de connexions à une base de données. La base de données en fait souvent avoir une limite sur le nombre de connexions simultanément actives à un moment donné et si tous ceux en usage sont permises les opérations sont ralenties. Si le nombre d'utilisateurs du système est à peu près égal au nombre de connexions disponibles dans le même temps pourrait causer des problèmes non pertinents, mais si le nombre d'utilisateurs a augmenté les performances du système peuvent souffrir considérablement.

Pour résoudre ces problèmes ADO.NET offre la classe DataSet, conçu pour fournir une sorte de copie de la base (ou partie) utilisé par une application. Les avantages sont nombreux, il suffit de penser qu'au sein d'une instance de l'ensemble des données que vous pouvez entrer de nouvelles données, mise à jour ou supprimer celles qui existent déjà, et ensuite de confirmer l'ensemble de ces opérations qui sont exécutées en mode déconnecté en se connectant à la base de données pour une courte période de temps.

La classe DataSet inclut un tableau d'objets DataTable, qui sont peuplées à travers le DataAdapter. Ces éléments sont invoqués lors du chargement des données de la base de données directement dans le DataTable et ensuite vous pouvez travailler sur ces données locales, en interaction avec la base de données que lorsque vous confirmer les modifications apportées.

Donc, en utilisant le DataSet nous pouvons accéder à chaque élément de ce si complètement aléatoire, contrairement à ce que nous avons vu pour la composante DbDataReader.

Aide avec Visual Studio ASP.Net
E-Learning
ASP (Advanced) ASP (Advanced)
Cours complet pour la création de sites Web dynamiques. A partir de 39 €.
ASP.NET (Cours) ASP.NET (Cours)
Cours complet pour construire des applications Web à partir de 49 €.
SQL et bases de données (cours) SQL et bases de données (cours)
Créer et gérer des bases de données relationnelles. A partir de 39 €.
Liens sponsorisés