C# connexion a une base de donnés sql
Résolu/Fermé
gorgibus
Messages postés
15
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
26 octobre 2008
-
18 oct. 2008 à 20:20
gorgibus Messages postés 15 Date d'inscription samedi 18 octobre 2008 Statut Membre Dernière intervention 26 octobre 2008 - 23 oct. 2008 à 20:22
gorgibus Messages postés 15 Date d'inscription samedi 18 octobre 2008 Statut Membre Dernière intervention 26 octobre 2008 - 23 oct. 2008 à 20:22
A voir également:
- C# connexion a une base de donnés sql
- Gmail connexion - Guide
- Formules excel de base - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Le fichier à télécharger est la nouvelle note de service de votre entreprise. importez ce fichier dans le bon dossier sur l'espace pix cloud. donnez à ce fichier les mêmes droits d'accès que les autres notes de service. ✓ - Forum Windows
6 réponses
Elx
Messages postés
11
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
31 octobre 2008
71
19 oct. 2008 à 08:18
19 oct. 2008 à 08:18
Salut
Malheureusement free, comme beaucoup de prestataire, verrouille l'accès à sa base de données depuis un logiciel externe. Personnellement j'utilise une base de données construite à partir du site https://www.db4free.net/ Comme free, il s'agit d'une base de type MySql, mais on peut y accéder à partir d'un site web, en php par exemple, et à partir d'un logiciel externe.
Concernant particulièrement le C#, tu peux télécharger un exemple que j'ai mis sur mon serveur:
http://www.artweweb.com/Forum/MySQlCSharp.zip
Voici comment j'ai procédé:
1. Téléchargement du composant .NET pour MySQL:
Il faut tout d'abord télécharger et installer un composant permettant d'accéder à une base de données MySql avec des fonctions dot net simples. Voici le lien:
https://www.mysql.com/products/connector/
2. Ajout de la référence MySql.Data au projet
Il faut rajouter cette référence, comme n'importe quel autre composant .NET. Si tu n'as pas changer les paramètres d'installation du module MySQL pour .NET, le composant se trouve dans le dossier:
C:\Program Files\MySQL\MySQL Connector Net 1.0.10.1\Binaries\.NET 1.1
3. Connexion à la base de donnée
Il faut créer une chaine de caractères incluant tous les paramètres de connexion à la base. Exemple:
string connStr = "server=db4free.net; user id=emploi; password=mypass; database=agbe; pooling=false";
Cette chaine permet de se connecter à la base de données "agbe", sur le serveur db4free.net avec l'identifiant "emploi" et le mot de passe "myPass".
Pour se connecter, il suffit de créer une variable MySql.Data.MySqlClient.MySqlConnection avec comme paramètre la chaine ci-dessus:
MySql.Data.MySqlClient.MySqlConnection=new MySql.Data.MySqlClient.MySqlConnection( connStr );
4. Chargement d'une table de la base
Il existe de nombreuses méthodes, je t'en propose une:
Création d'une requête SQL:
string mySelectQuery = "SELECT * FROM table 1"
Ici, on sélection tous les enregistrements de la table "table 1".
Création d'un adaptateur paramétré par la requête sql et la variable MySql.Data.MySqlClient.MySqlConnection:
MySql.Data.MySqlClient.MySqlDataAdapter AdapTable=new MySql.Data.MySqlClient.MySqlDataAdapter(mySelectQuery,m_conn);
Création d'un dataset permettant de recevoir, entre autres, une table et ses données:
System.Data.DataSet DtSet=new System.Data.DataSet();
Maintenant on remplit le dataset avec le résultat de la requête:
AdapTable.Fill(DtSet, ((char)0).ToString());
Et voila la table:
System.Data.DataTable MaTable=DtSet.Tables[0];
J'ai aussi fait une petite page php qui permet d'afficher les données de la table 1:
http://www.artweweb.com/Forum/DonneesTable1.php
Voila, j'espère avoir été utile.
Elx
http://www.artweweb.com/
Malheureusement free, comme beaucoup de prestataire, verrouille l'accès à sa base de données depuis un logiciel externe. Personnellement j'utilise une base de données construite à partir du site https://www.db4free.net/ Comme free, il s'agit d'une base de type MySql, mais on peut y accéder à partir d'un site web, en php par exemple, et à partir d'un logiciel externe.
Concernant particulièrement le C#, tu peux télécharger un exemple que j'ai mis sur mon serveur:
http://www.artweweb.com/Forum/MySQlCSharp.zip
Voici comment j'ai procédé:
1. Téléchargement du composant .NET pour MySQL:
Il faut tout d'abord télécharger et installer un composant permettant d'accéder à une base de données MySql avec des fonctions dot net simples. Voici le lien:
https://www.mysql.com/products/connector/
2. Ajout de la référence MySql.Data au projet
Il faut rajouter cette référence, comme n'importe quel autre composant .NET. Si tu n'as pas changer les paramètres d'installation du module MySQL pour .NET, le composant se trouve dans le dossier:
C:\Program Files\MySQL\MySQL Connector Net 1.0.10.1\Binaries\.NET 1.1
3. Connexion à la base de donnée
Il faut créer une chaine de caractères incluant tous les paramètres de connexion à la base. Exemple:
string connStr = "server=db4free.net; user id=emploi; password=mypass; database=agbe; pooling=false";
Cette chaine permet de se connecter à la base de données "agbe", sur le serveur db4free.net avec l'identifiant "emploi" et le mot de passe "myPass".
Pour se connecter, il suffit de créer une variable MySql.Data.MySqlClient.MySqlConnection avec comme paramètre la chaine ci-dessus:
MySql.Data.MySqlClient.MySqlConnection=new MySql.Data.MySqlClient.MySqlConnection( connStr );
4. Chargement d'une table de la base
Il existe de nombreuses méthodes, je t'en propose une:
Création d'une requête SQL:
string mySelectQuery = "SELECT * FROM table 1"
Ici, on sélection tous les enregistrements de la table "table 1".
Création d'un adaptateur paramétré par la requête sql et la variable MySql.Data.MySqlClient.MySqlConnection:
MySql.Data.MySqlClient.MySqlDataAdapter AdapTable=new MySql.Data.MySqlClient.MySqlDataAdapter(mySelectQuery,m_conn);
Création d'un dataset permettant de recevoir, entre autres, une table et ses données:
System.Data.DataSet DtSet=new System.Data.DataSet();
Maintenant on remplit le dataset avec le résultat de la requête:
AdapTable.Fill(DtSet, ((char)0).ToString());
Et voila la table:
System.Data.DataTable MaTable=DtSet.Tables[0];
J'ai aussi fait une petite page php qui permet d'afficher les données de la table 1:
http://www.artweweb.com/Forum/DonneesTable1.php
Voila, j'espère avoir été utile.
Elx
http://www.artweweb.com/
Elx
Messages postés
11
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
31 octobre 2008
71
19 oct. 2008 à 19:02
19 oct. 2008 à 19:02
Salut
1. Lecture des enregistrements d'une table en C#
Il existe plusieurs méthodes pour récupérer les enregistrements d’une table en C#.
Je t’en propose une qui me semble assez proche du langage php :
int id;
string mail;
string message;
System.DateTime date;
System.DateTime time;
foreach(System.Data.DataRow row in MaTable.Rows)
{
id=(int)row[0];
mail=(string)row[1];
message=(string)row[2];
date=(System.DateTime)row[3];
time=(System.DateTime)row[4];
}
2. Ajout d'enregistrements à une table en C#
Il existe plusieurs méthodes, je te propose celle qui me semble la plus simple.
Supposons que la requête est de la forme:
string mySqlQuery = "INSERT INTO table1(.....) VALUES ...."
On va créer un objet MySqlCommand qui définit une action sur la base de données et prend comme paramètre la requête sous forme d'une chaine et un objet MySql.Data.MySqlClient.MySqlConnection qui correspond à la connexion à la base:
MySql.Data.MySqlClient.MySqlCommand sqlCmd=new MySql.Data.MySqlClient.MySqlCommand(mySqlQuery ,m_conn);
L'execution de l'action se fait par l'appel de la fonction ExecuteNonQuery():
sqlCmd.ExecuteNonQuery();
C'est tout !
Voila, J'espère que cela te serra utile
Elx
http://www.artweweb.com/
1. Lecture des enregistrements d'une table en C#
Il existe plusieurs méthodes pour récupérer les enregistrements d’une table en C#.
Je t’en propose une qui me semble assez proche du langage php :
int id;
string mail;
string message;
System.DateTime date;
System.DateTime time;
foreach(System.Data.DataRow row in MaTable.Rows)
{
id=(int)row[0];
mail=(string)row[1];
message=(string)row[2];
date=(System.DateTime)row[3];
time=(System.DateTime)row[4];
}
2. Ajout d'enregistrements à une table en C#
Il existe plusieurs méthodes, je te propose celle qui me semble la plus simple.
Supposons que la requête est de la forme:
string mySqlQuery = "INSERT INTO table1(.....) VALUES ...."
On va créer un objet MySqlCommand qui définit une action sur la base de données et prend comme paramètre la requête sous forme d'une chaine et un objet MySql.Data.MySqlClient.MySqlConnection qui correspond à la connexion à la base:
MySql.Data.MySqlClient.MySqlCommand sqlCmd=new MySql.Data.MySqlClient.MySqlCommand(mySqlQuery ,m_conn);
L'execution de l'action se fait par l'appel de la fonction ExecuteNonQuery():
sqlCmd.ExecuteNonQuery();
C'est tout !
Voila, J'espère que cela te serra utile
Elx
http://www.artweweb.com/
gorgibus
Messages postés
15
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
26 octobre 2008
7
19 oct. 2008 à 14:53
19 oct. 2008 à 14:53
Merci de la réponse très claire.
J'ai bien réussi a me connecté a ma base de donnés par contre je ne vois pas bien comment récupérer mes informations avec ceci System.Data.DataTable MaTable=DtSet.Tables[0]; ?
La table contiendra 5 champs : id, mail, message, date, heure.
Si cela pouvait ressembler au php lorsque on utilise while puis l'assoiation des resultat a une table ça serait formidable.
Pour l'ajout de donné dans la base que dois-je écrire ? (pour la requête ça ne me pose aucun problème mais comment l'envoyer ?)
Merci encore pour l'aide. Ça faisait un moment que j'essayais de me connecter à ma table sur free en vain !
J'ai bien réussi a me connecté a ma base de donnés par contre je ne vois pas bien comment récupérer mes informations avec ceci System.Data.DataTable MaTable=DtSet.Tables[0]; ?
La table contiendra 5 champs : id, mail, message, date, heure.
Si cela pouvait ressembler au php lorsque on utilise while puis l'assoiation des resultat a une table ça serait formidable.
Pour l'ajout de donné dans la base que dois-je écrire ? (pour la requête ça ne me pose aucun problème mais comment l'envoyer ?)
Merci encore pour l'aide. Ça faisait un moment que j'essayais de me connecter à ma table sur free en vain !
Elx
Messages postés
11
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
31 octobre 2008
71
20 oct. 2008 à 05:19
20 oct. 2008 à 05:19
Salut
Il suffit d'ouvrir la connexion après sa création:
string connStr = "server=db4free.net; user id=pseudo; password=pass; database=gorgibus69; pooling=false";
MySql.Data.MySqlClient.MySqlConnection m_conn = new MySql.Data.MySqlClient.MySqlConnection(connStr);
m_conn .Open();
string mySqlQuery = "INSERT INTO test (id, mail, message, date, time) VALUES (NULL, 'Mail', 'Message', '2008-02-05', '11:11:11');";
MySql.Data.MySqlClient.MySqlCommand sqlCmd = new MySql.Data.MySqlClient.MySqlCommand(mySqlQuery, m_conn);
sqlCmd.ExecuteNonQuery();
il ne faut pas oublier de la fermer lorsque l'accès à la base n'est plus nécessaires:
m_conn .Close();
Elx
http://www.artweweb.com/
Il suffit d'ouvrir la connexion après sa création:
string connStr = "server=db4free.net; user id=pseudo; password=pass; database=gorgibus69; pooling=false";
MySql.Data.MySqlClient.MySqlConnection m_conn = new MySql.Data.MySqlClient.MySqlConnection(connStr);
m_conn .Open();
string mySqlQuery = "INSERT INTO test (id, mail, message, date, time) VALUES (NULL, 'Mail', 'Message', '2008-02-05', '11:11:11');";
MySql.Data.MySqlClient.MySqlCommand sqlCmd = new MySql.Data.MySqlClient.MySqlCommand(mySqlQuery, m_conn);
sqlCmd.ExecuteNonQuery();
il ne faut pas oublier de la fermer lorsque l'accès à la base n'est plus nécessaires:
m_conn .Close();
Elx
http://www.artweweb.com/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gorgibus
Messages postés
15
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
26 octobre 2008
7
19 oct. 2008 à 22:39
19 oct. 2008 à 22:39
Merci encore !
C'est exactement ce que je cherchais pour la lecture des tables. Le seul problème c'est qu'il ma fallu changer le type de variables de date et time en string sinon une erreur était généré est-ce normale ?
Pour l'ajout de donnés, cela ne marche pas. Arrivée à sqlCmd.ExecuteNonQuery(); le compilateur me met comme erreur «Connection must be valid and open».
Ai-je fais une erreur ?
C'est exactement ce que je cherchais pour la lecture des tables. Le seul problème c'est qu'il ma fallu changer le type de variables de date et time en string sinon une erreur était généré est-ce normale ?
Pour l'ajout de donnés, cela ne marche pas. Arrivée à sqlCmd.ExecuteNonQuery(); le compilateur me met comme erreur «Connection must be valid and open».
string connStr = "server=db4free.net; user id=pseudo; password=pass; database=gorgibus69; pooling=false"; MySql.Data.MySqlClient.MySqlConnection m_conn = new MySql.Data.MySqlClient.MySqlConnection(connStr); string mySqlQuery = "INSERT INTO test (id, mail, message, date, time) VALUES (NULL, 'Mail', 'Message', '2008-02-05', '11:11:11');"; MySql.Data.MySqlClient.MySqlCommand sqlCmd = new MySql.Data.MySqlClient.MySqlCommand(mySqlQuery, m_conn); sqlCmd.ExecuteNonQuery();
Ai-je fais une erreur ?
gorgibus
Messages postés
15
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
26 octobre 2008
7
23 oct. 2008 à 20:22
23 oct. 2008 à 20:22
Bonsoir à tous,
Je fais un add-on pour msn et j'ai essayé de communiquer avec une base de donné en vain.
Le message d'erreur 8013150a s'affiche de que l'addon tente de se connecter à ma base de donné.
J'ai lu ici http://forum.mess.be/index.php?showtopic=19229 que cela viendrait du fait que je ne peut pas communiquer a internet avec l'addon.
Puis-je faire quelque chose pour résoudre mon problème ?
Je fais un add-on pour msn et j'ai essayé de communiquer avec une base de donné en vain.
Le message d'erreur 8013150a s'affiche de que l'addon tente de se connecter à ma base de donné.
J'ai lu ici http://forum.mess.be/index.php?showtopic=19229 que cela viendrait du fait que je ne peut pas communiquer a internet avec l'addon.
Puis-je faire quelque chose pour résoudre mon problème ?