|
auteurs : abelman, tomlev |
Le .NET Framework dispose de plusieurs providers ADO.NET permettant de se connecter à divers SGBD :
- System.Data.SqlClient pour SQL Server ;
- System.Data.SqlServerCe pour SQL Server Compact (ajouter une référence à System.Data.SqlServerCe.dll) ;
- System.Data.Odbc pour les SGBD fournissant un pilote ODBC ;
- System.Data.OleDb pour tous les SGBD ayant un fournisseur OLE DB ;
-
System.Data.Oracle.Client pour Oracle (ajouter une référence à System.Data.OracleClient.dll) ;
Note : ce provider n'est plus officiellement supporté par Microsoft, il est recommandé d'utiliser le provider fourni par Oracle (voir plus bas).
Pour d'autres types de base de données, il n'existe pas de provider intégré au .NET framework, il faut donc utiliser
celui fourni par l'éditeur :
|
|
auteur : cardi |
Cette définition est tirée de MSDN.
Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile), précédemment Microsoft SQL Server 2000 Édition Windows CE 2.0 (SQL Server CE), étend les solutions d'entreprise de Microsoft aux applications sectorielles et de gestion d'informations personnelles sur un appareil, tout en offrant aux développeurs un modèle de programmation cohérent pour développer rapidement des applications. SQL Server Mobile offre des fonctionnalités de base de données relationnelle, tout en conservant une taille compacte : une banque de données fiable, un processeur d'optimisation des requêtes et des possibilités de connectivité fiables et évolutives.
|
lien : Sql Server Mobile 2005 (MSDN)
|
|
auteur : cardi |
Visitez le site regroupant la liste des chaines de connexion des différents SGBD : http://www.connectionstrings.com/
|
|
auteur : cardi |
Mode connecté
Ce mode permet à un client de se connecter à un serveur de base de données et tant que le client ne fermera pas la connexion, le serveur se souviendra de lui. Lorsque l'on désirera récupérer des informations (SELECT), on les recevra au compte-gouttes, c'est-à-dire une par une.
Mode déconnecté
Le but de ce mode est de récupérer en un bloc une portion de la base de données afin d'effectuer des traitements en local sur la machine du client. On aura donc une ouverture de connexion à la base de données, la récupération en un seul bloc du résultat puis la fermeture de la connexion.
|
|
auteur : abelman |
Voici un exemple pour SQL Server
using System. Data. SqlClient;
class adobasic
{
[ STAThread]
static void Main (string [ ] args)
{
try
{
string connectString = " database=test_paresco;server=am01;User ID=BACK;pwd=xxxxxx " ;
SqlConnection connection = new SqlConnection (connectString);
connection. Open ();
connection. Close ();
}
catch (Exception ex)
{
System. Diagnostics. Debug. WriteLine (ex. ToString ());
}
}
}
|
|
lien : Consulter les différents cours sur ADO.NET
|
|
auteur : abelman |
On utilise les objets Command et DataReader.
Exemple avec SQL Server :
string connectString = " database=test_paresco;server=am01;User ID=BACK;pwd=xxxxxx " ;
SqlConnection connection = new SqlConnection (connectString);
connection. Open ();
SqlCommand command = new SqlCommand (" SELECT * FROM usr_contract " , connection);
SqlDataReader reader = command. ExecuteReader ();
Object[ ] row = null ;
while (reader. Read ())
{
if (row = = null )
row = new Object[ reader. FieldCount] ;
reader. GetValues (row);
for (int i = 0 ; i < row. GetLength (0 ); i+ + )
{
if (row[ i] ! = DBNull. Value)
Console. Write (row[ i] );
else
Console. Write (" NULL " );
if (i < row. GetUpperBound (0 ))
Console. Write (" | " );
}
Console. WriteLine ();
}
reader. Close ();
connection. Close ();
|
Consulter les cours sur ADO.NET pour plus d'informations.
|
lien : http://dotnet.developpez.com/cours/
|
|
auteur : abelman |
On utilise la méthode ExecuteNonQuery de l'objet Command.
Exemple avec SqlServer
string connectString = " database=test_paresco;server=am01;User ID=BACK;pwd=xxxxxx " ;
SqlConnection connection = new SqlConnection (connectString);
connection. Open ();
SqlCommand command = new SqlCommand (" UPDATE usr_contract set ctr_n = ctr_n + 1 " , connection);
int affectedrows = command. ExecuteNonQuery ();
Console. WriteLine (" Nombre de lignes affectées {0} " , affectedrows);
connection. Close ();
|
Consulter la page cours pour ADO.NET.
|
lien : http://dotnet.developpez.com/cours/
|
|
auteur : abelman |
Il est possible de passer des paramètres à des requêtes SQL.
Exemple avec SQL Server :
using System. Data. SqlClient;
using System. Data;
string connectString = " database=test_paresco;server=am01;User ID=BACK;pwd=xxxxxx " ;
SqlConnection connection = new SqlConnection (connectString);
connection. Open ();
SqlCommand command = new SqlCommand (" SELECT * FROM usr_contract WHERE " +
" ctr_ref = @contract AND ctr_exg_ref = @exg " ,
connection);
command. Parameters. Add (new SqlParameter (" @contract " , SqlDbType. VarChar, 5 ));
command. Parameters[ " @contract " ] . Value = " FTE " ;
command. Parameters. Add (new SqlParameter (" @exg " , SqlDbType. VarChar, 8 ));
command. Parameters[ " @exg " ] . Value = " SBF " ;
SqlDataReader reader = command. ExecuteReader ();
Object[ ] row = null ;
while (reader. Read ())
{
if (row = = null )
row = new Object[ reader. FieldCount] ;
reader. GetValues (row);
for (int i = 0 ; i < row. GetLength (0 ); i+ + )
{
if (row[ i] ! = DBNull. Value)
Console. Write (row[ i] );
else
Console. Write (" NULL " );
if (i < row. GetUpperBound (0 ))
Console. Write (" | " );
}
Console. WriteLine ();
}
reader. Close ();
connection. Close ();
|
Consulter les cours sur ADO.NET pour plus d'informations.
|
lien : http://dotnet.developpez.com/cours/
|
|
auteur : abelman |
Pour exécuter une requête contenant une quote simple, il faut utiliser les requêtes paramétrées
On peut aussi faire plus simple en doublant les quotes avant d'exécuter la requête.
string sql = " SELECT * FROM pasta WHERE name = 'aujourd''hui' " ;
string name = " aujourd'hui " ;
sql = " SELECT * FROM pasta WHERE name = " + name. Replace (" ' " , " '' " );
|
|
|
auteur : Thomas Lebrun |
En utilisant un DataSet et sa méthode WriteXml, vous avez la possibilité d'écrire le contenu d'une table dans un fichier XML.
public class EcrireXML
{
public static void Main ()
{
string _ConnectionString = " Server=Srv1;Database=Northwind;User ID=sa;Password=asdasd " ;
SqlConnection _SqlConnection = new SqlConnection ();
_SqlConnection. ConnectionString = _ConnectionString;
SqlDataAdapter da = new SqlDataAdapter (" Select * from Customers " , _SqlConnection);
DataSet ds = new DataSet ();
da. Fill (ds, " Customers " );
ds. WriteXml (" C:\\TestXml.xml " );
}
}
|
Voici, après traitement, le contenu du fichier TestXml.xml :
< ? xml version= " 1.0 " standalone= " yes " ? >
< NewDataSet>
< myTable>
< CustomerID> ALFKI< / CustomerID>
< CompanyName> Alfreds Futterkiste< / CompanyName>
< ContactName> Maria Anders< / ContactName>
< ContactTitle> Sales Representative< / ContactTitle>
< Address> Obere Str. 57 < / Address>
< City> Berlin< / City>
< PostalCode> 12209 < / PostalCode>
< Country> Germany< / Country>
< Phone> 030 - 0074321 < / Phone>
< Fax> 030 - 0076545 < / Fax>
< / myTable>
< / NewDataSet>
|
|
|
auteurs : HULK, neguib |
Ce code permet d'exécuter un DTS SQL Server 2000 via une application .NET.
Un import de la référence "
Microsoft DTSPackage Object Library
" est nécessaire.
using System. Runtime. InteropServices;
using DTS;
private void RunDTS (string servername , string dtsname)
{
Package package = new Package ();
package. LoadFromSQLServer (servername , " " , " " , DTSSQLServerStorageFlags. DTSSQLStgFlag_UseTrustedConnection, , , , dtsname);
package. Execute ();
}
|
|
|
auteur : HULK |
Ce code permet de détecter les valeurs de lignes d'un datagrid qui ont été modifiées, supprimées ou ajoutées par l'utilisateur.
On suppose ici que l'on remplit le datagrid avec un dataset et un sqldataadapter. La requête SELECT du DataAdapter contient deux champs,
nous avons donc la requête du type :
SELECT Champ1, Champ2 FROM Table
|
Dans l'évènement click d'un bouton, nous pouvons mettre :
string ligneModif, ligneSupp, ligneAjout;
foreach (DataRow dr in dataSet. Tables[ " DataTable " ] . Rows)
{
switch (dr. RowState)
{
case DataRowState. Modified:
ligneModif + = dr[ 0 , DataRowVersion. Original] + " - " + dr[ 1 , DataRowVersion. Original] ;
break ;
case DataRowState. Deleted:
ligneSupp + = dr[ 0 , DataRowVersion. Original] + " - " + dr[ 1 , DataRowVersion. Original] ;
break ;
case DataRowState. Added:
ligneAjout + = dr[ 0 ] + " - " + dr[ 1 ] ;
break ;
default :
break ;
}
}
string result = " ligne(s) modifiée(s) : \n " + ligneModif + " \nligne(s) supprimée(s) : \n " + ligneSupp + " \nLigne(s) ajoutée(s) :\n " + ligneAjout;
MessageBox. Show (result);
|
|
|
auteur : cardi |
Les classes xxxCommand (sous-entendu SqlCommand, OleDbCommand, etc.) possèdent la propriété CommandTimeout pour définir le temps maximum que pourra prendre la requête.
SqlCommand maCommand = new SqlCommand (" SELECT * FROM MaTable " );
Console. WriteLine (" Temps avant Timeout : {0} " , maCommand. CommandTimeout);
maCommand. CommandTimeout = 10 ;
Console. WriteLine (" Temps avant Timeout : {0} " , maCommand. CommandTimeout);
maCommand. CommandTimeout = 0 ;
|
|
lien : System.Data.SqlClient.SqlCommand (MSDN)
|
|
auteur : cardi |
Grâce à la classe SqlCeEngine, il est possible de créer une base de données dynamiquement :
String CheminApplication = System. IO. Path. GetDirectoryName (System. Reflection. Assembly. GetCallingAssembly (). GetName (). CodeBase);
String CheminFichier = System. IO. Path. Combine (CheminApplication, " bd.sdf " );
System. Data. SqlServerCe. SqlCeEngine Engine = new System. Data. SqlServerCe. SqlCeEngine (" Data Source = " + CheminFichier);
Engine. CreateDatabase ();
|
|
|
auteur : Kerod |
L'ajout d'une ligne dans un dataset peut être réalisé à partir de plusieurs méthodes, mais nous verrons ici celle qui utilise la classe du dataSet que vous avez créé.
Pour cet exemple, nous supposerons que nous avons une table Personne contenant toutes les informations nécessaires pour constituer un carnet d'adresses.
Notre première étape consistera à créer une nouvelle ligne (DataRow) vide :
DataRow contactRow = personneDataSet. Personne. NewRow ();
|
Une fois cette création terminée, il ne nous reste plus qu'à insérer les données de notre formulaire d'insertion dans notre nouvelle ligne (contactRow) :
contactRow[ " nom " ] = nomEdit. EditValue. ToString ();
contactRow[ " prenom " ] = prenomEdit. EditValue. ToString ();
contactRow[ " mail " ] = emailEdit. EditValue. ToString ();
contactRow[ " phone " ] = phoneEdit. EditValue. ToString ();
contactRow[ " adresse " ] = adressEdit. EditValue. ToString ();
. . .
|
Enfin, il ne nous reste plus qu'à l'ajouter à notre DataSet et valider cette action :
personneDataSet. Personne. Rows. Add (contactRow);
if (personneTableAdapter. Update (personneDataSet. Personne) > 0 )
MessageBox. Show (" Le nouveau contact a bien été ajouté. " );
else
MessageBox. Show (" Le nouveau contact n'a pas été ajouté. " );
|
|
lien : Les objets DataAdapter et Dataset dans ADO.NET
|
|
auteur : Kerod |
La modification d'une ligne dans un DataSet peut être réalisée à partir de plusieurs méthodes :
- à l'aide d'une procédure stockée
- à l'aide des fonctions du DataSet que nous avons créé.
Nous verrons ici la deuxième méthode.
Pour cet exemple, nous supposerons que nous avons une table Personne contenant toutes les informations nécessaires pour constituer un carnet d'adresses.
Notre première étape consiste à récupérer la ligne existante dans le dataSet à l'aide de l'id que nous aurons récupéré :
DataRow contactRow = personneDataSet. Personne. Rows. Find (idPersonne);
|
Une fois cette récupération terminée, nous pouvons modifier les données avec les nouvelles issues de notre formulaire :
contactRow. BeginEdit ();
contactRow[ " nom " ] = nomEdit. EditValue. ToString ();
contactRow[ " prenom " ] = prenomEdit. EditValue. ToString ();
contactRow[ " mail " ] = emailEdit. EditValue. ToString ();
contactRow[ " phone " ] = phoneEdit. EditValue. ToString ();
contactRow[ " adresse " ] = adressEdit. EditValue. ToString ();
contactRow. EndEdit ();
|
Enfin il ne reste plus qu'à mettre à jour notre DataTable avec les nouvelles valeurs de notre dataSet :
if (personneTableAdapter. Update (personneDataSet. Personne) > 0 )
MessageBox. Show (" La modification du contact a bien été prise en compte. " );
else
MessageBox. Show (" La modification n'a pas pu être réalisée. " );
|
|
lien : Les objets DataAdapter et Dataset dans ADO.NET
|
|
auteur : Kerod |
La suppression d'une ligne dans un DataSet peut être réalisé à partir de plusieurs méthodes :
- à l'aide d'une procédure stockée ;
- à l'aide des fonctions du DataSet que nous avons créé.
Nous verrons ici la deuxième méthode.
Pour cet exemple, nous supposerons que nous avons une table Personne contenant toutes les informations nécessaires pour constituer un carnet d'adresses.
Notre première étape consiste à récupérer la ligne existante dans le dataSet à l'aide de l'id que nous aurons récupéré :
DataRow contactRow = personneDataSet. Personne. Rows. Find (idPersonne);
|
Une fois cette récupération terminée, il ne reste plus qu'à la supprimer de notre DataSet :
Enfin nous devons mettre à jour notre DataTable :
if (personneTableAdapter. Update (personneDataSet. Personne) > 0 )
contactStatus. Caption = " Le contact a bien été supprimé " ;
else
contactStatus. Caption = " Le contact n'a pas pu être supprimé " ;
|
|
lien : Les objets DataAdapter et Dataset dans ADO.NET
|
Consultez les autres F.A.Q's


Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2010 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.