FAQ ASP.NET / Delphi.NET
FAQ ASP.NET / Delphi.NETConsultez toutes les FAQ
Nombre d'auteurs : 15, nombre de questions : 90, dernière mise à jour : 16 juin 2021
- Comment se connecter à une base de données ?
- Comment récupérer les données résultants d'une requête ?
- Comment stocker des variables globales comme la chaine de connection dans le fichier web.config ?
- Comment se connecter à une base MySQL via MySQLDriverCS?
- Comment fusionner 2 DataTables ?
- Comment remplir une dataTable sans passer par un dataAdapter ?
Leduke nous parle d'ADO.NET et de la connexion à une base de données dans son article : ADO.NET : Connection, Command et DataReader.
Lien : Utiliser l'objet connection pour se connecter à une base de données
Lien : ADO.NET : Connection, Command et DataReader.(l'article complet)
Il y a en fait 2 moyens de récupérer les données d'une requête :
On les récupère sous forme de flux en lecture seule, en avant seulement, à l'aide d'un datareader.
On les stocke en mémoire dans une structure appelée dataset, facilitant ainsi l'ajout, la mise à jours et
la suppression des données.
Que vous utilisiez l'une ou l'autre des méthodes, leduke a rédigé 2 excellents articles qui vous permettront de récupérer les données résultantes d'une requête.
Lien : Les objets DataAdapter et Dataset dans ADO.NET
Lien : ADO.NET : Connection, Command et DataReader
Dans une application on a toujours besoin de sauvegarder des variables globales qui pourront être réutilisées à tout moment par l'application. Le stockage des variables globales dans le fichier web.config est la solution la plus simple . Prenons l'exemple du stockage d'une chaîne de connexion dans le fichier web.config. dans le fichier web.config
<appSettings>
<add key
=
"ConnectionString"
value
=
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\bornes\charentes.mdb;"
/>
</appSettings>
pour récupérer la chaîne de connexion :
private
connection : System.Data.OleDb.OleDbConnection ;
procedure
TWebForm1.Page_Load(sender: System.Object
; e: System.EventArgs);
begin
connection := System.Data.OleDb.OleDbConnection.Create() ;
connection.ConnectionString = configuration.AppSettings('ConnectionString'
) ;
end
;
Note : Il existe d'autres moyens pour stocker des variables globales. Par exemple les sessions utilisateurs pour jouer sur des variables qui dépendent des utilisateurs et leur paramètrer une durée de vie. Pour les chainnes de connections, si vous avez un mot de passe et un ID dans la chaîne, il est conseillé de stocker cette variable dans la base de registre pour des raisons de sécurité (il est plus facile pour un hacker du lire un fichier sur le serveur, qu'une valeur dans la base de registre du serveur). Le stockage de variables globales "sensibles" dans la base de registre n'est possible qu'avec le framework.NET 1.1
Les drivers MySQLDrivers permettent de se connecter à une base MySQL via des drivers natifs plus performants que ODBC.
Tout d'abord téléchargez MySQLDrivers
Il faut ensuite faire référence à la DLL MySQLDriverCS.dll :
Sous Visual Studio : menu projet => ajouter référence
Sous C#Builder : fenêtre de projet => REFERENCES => Click droit ajouter référence
Sous Delphi.NET : Projet => Ajouter référence
Voici la syntaxe pour la chaîne de connexion à une base de données MySQL :
uses
MySQLDriverCS ;
var
conn : MySQLConnection ;
conn := MySQLConnection.Create( MySQLConnectionString.Create('le_nom_du_serveur'
,'le_nom_de_la_base_de_données'
,
'le_login'
, 'le_password'
).AsString ) ;
Pour fusionner 2 DataTables, il faut les inclure dans un DataSet :
var
dt1 , dt2 : DataTable ;
ds : DataSet ;
dt1 := DataTable.Create('Test'
) ;
dt2 := DataTable.Create('Test'
) ;
ds := DataSet.Create() ;
ds.Merge(dt1) ;
ds.Merge(dt2) ;
ds.Table(0) représentera la table fusionné. Pour fusionner 2 DataTables il faut qu'elles aient le même nom, sinon une nouvelle table est ajoutée au DataSet.
Cette utilisation de la fonction merge du DataSet est décrite ici décrite de manière simpliste pour l'utilisation la plus courante qui en est faite. Pour plus de détail sur cette fonction reportez-vous au cours d'ADO.NET.
Lien : Cours d'ADO.NET
Voici un exemple ou l'on crée et on remplit un DataTable en code-behind
var
tuple : DataRow
table : DataTable
col1 , col2: DataColumn ;
tuple := DataRow.Create() ;
table := DataTable.Create() ;
col1 := DataColumn.Create('Col1'
, GetType(System.Double
) ) ;
col2 := DataColumn.Create('Col'
, GetType(System.String
) ) ;
// on ajoute les colonnes à la datatable
table.Columns.Add(col1) ;
table.Columns.Add(col2) ;
// on crée un rows
tuple := table.NewRow();
// on le remplis
tuple.Item(0
) := 1
;
tuple.Item(1
) := 'Première tuple de mon datatable'
;
// on l'ajoute à la table
table.Rows.Add(tuple) ;
// on crée un rows
tuple := table.NewRow() ;
// on le remplis
tuple.Item(0
) := 2
;
tuple.Item(1
) := 'deuxième tuple de mon datatable'
;
// on l'ajoute à la table
table.Rows.Add(tuple) ;
Lien : Cours d'ADO.NET