Se connecter à une BDD sur serveur (via internet) dans un programme en C#.
Vadorequest
Messages postés4Date d'inscriptionsamedi 16 avril 2011StatutMembreDernière intervention26 juillet 2014
-
28 avril 2011 à 01:58
Vadorequest
Messages postés4Date d'inscriptionsamedi 16 avril 2011StatutMembreDernière intervention26 juillet 2014
-
28 avril 2011 à 11:18
Bonsoir !
Jusqu'à présent je me connectais à des BDD en local sur ma machine, ce qui donnait se code ci:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using DooJet.Couche_Metier;
namespace DooJet.Couche_Donnees
{
class CAD
{
private string rq_sql;
private string cnx;
private string rows;
private System.Data.OleDb.OleDbConnection oCNX;
private System.Data.OleDb.OleDbCommand oCMD;
private System.Data.OleDb.OleDbDataAdapter oDA;
private System.Data.DataSet oDS;
public CAD()
{
this.rq_sql = null;
this.rows = null;
this.cnx = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\Jeux\Bakoro\Moi\Logiciels\Calculateur de PVs\BDD\BDD.accdb";
this.oCNX = new OleDbConnection(this.cnx);
this.oCMD = null;
this.oDA = null;
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql, string rows}, 2 cases utilisées par GetRows. Getrows renvoit un oDS.
/// </summary>
///
/// <returns></returns>
public System.Data.DataSet m_GetRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.rows = (string)msg.Data[1];
this.oDS = new DataSet();
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oDA = new OleDbDataAdapter(this.oCMD);
this.oDA.Fill(this.oDS, this.rows);
return this.oDS;
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql}, 1 case utilisée seulement par ActionRows. ActionRows ne renvoit rien.
/// </summary>
///
public void m_ActionRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oCNX.Open();
this.oCMD.ExecuteNonQuery();
this.oCNX.Close();
}
}
}
Ca fonctionnait parfaitement.
J'ai tenté de simplement modifier la source comme cela:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using DooJet.Couche_Metier;
namespace DooJet.Couche_Donnees
{
class CAD
{
private string rq_sql;
private string cnx;
private string rows;
private System.Data.OleDb.OleDbConnection oCNX;
private System.Data.OleDb.OleDbCommand oCMD;
private System.Data.OleDb.OleDbDataAdapter oDA;
private System.Data.DataSet oDS;
public CAD()
{
this.rq_sql = null;
this.rows = null;
this.cnx = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ftp://vadorequest@ftp.demo1g.ovh.org/Bakoro/BDD.accdb";
this.oCNX = new OleDbConnection(this.cnx);
this.oCMD = null;
this.oDA = null;
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql, string rows}, 2 cases utilisées par GetRows. Getrows renvoit un oDS.
/// </summary>
///
/// <returns></returns>
public System.Data.DataSet m_GetRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.rows = (string)msg.Data[1];
this.oDS = new DataSet();
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oDA = new OleDbDataAdapter(this.oCMD);
this.oDA.Fill(this.oDS, this.rows);
return this.oDS;
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql}, 1 case utilisée seulement par ActionRows. ActionRows ne renvoit rien.
/// </summary>
///
public void m_ActionRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oCNX.Open();
this.oCMD.ExecuteNonQuery();
this.oCNX.Close();
}
}
}
Mais ca me dit chemin incorrect.
Je voudrais savoir ce que je dois faire pour établir une connexion, en sachant que mon serveur me demandera un login/mdp. (chose dont je n'avais pas besoin de mettre dans le code auparavant !)
Je vous remercie par avance de votre aide !
Bonne nuit ;)
A voir également:
Se connecter à une BDD sur serveur (via internet) dans un programme en C#.
Vadorequest
Messages postés4Date d'inscriptionsamedi 16 avril 2011StatutMembreDernière intervention26 juillet 2014 28 avril 2011 à 11:18
Yop, alors j'ai téléchargé la .dll qui gère les connections FTP.
Mon code est à présent cela:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using DooJet.Couche_Metier;
using EnterpriseDT.Net.Ftp;
namespace DooJet.Couche_Donnees
{
class CAD
{
private string rq_sql;
private string cnx;
private string rows;
private System.Data.OleDb.OleDbConnection oCNX;
private System.Data.OleDb.OleDbCommand oCMD;
private System.Data.OleDb.OleDbDataAdapter oDA;
private System.Data.DataSet oDS;
private FTPConnection oFTPConnection;
public CAD()
{
this.rq_sql = null;
this.rows = null;
//this.cnx = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:\Jeux\Bakoro\Moi\Logiciels\Calculateur de PVs\BDD\BDD.accdb";
this.oCNX = new OleDbConnection(this.cnx);
this.oCMD = null;
this.oDA = null;
this.oFTPConnection = new FTPConnection();
oFTPConnection.ServerAddress = "ftp://vadorequest@ftp.demo1g.ovh.org/BDD.accdb";// Est-ce le bon format ?
oFTPConnection.UserName = "xxx";
oFTPConnection.Password = "xxx";
oFTPConnection.
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql, string rows}, 2 cases utilisées par GetRows. Getrows renvoit un oDS.
/// </summary>
///
/// <returns></returns>
public System.Data.DataSet m_GetRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.rows = (string)msg.Data[1];
this.oDS = new DataSet();
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oDA = new OleDbDataAdapter(this.oCMD);
this.oDA.Fill(this.oDS, this.rows);
return this.oDS;
}
/// <summary>
/// Le message doit être sous la forme {string rq_sql}, 1 case utilisée seulement par ActionRows. ActionRows ne renvoit rien.
/// </summary>
///
public void m_ActionRows(Struct_MSG msg)
{
this.rq_sql = (string)msg.Data[0];
this.oCMD = new OleDbCommand(this.rq_sql, this.oCNX);
this.oCNX.Open();
this.oCMD.ExecuteNonQuery();
this.oCNX.Close();
}
}
}
Donc à présent en tout logique il me reste plus qu'à ouvrir/fermer la connexion. Mais je sais pas trop comment je vais pouvoir écrire dans la BDD, le fait d'utiliser un FTP ne change rien ? J'ai épluché l'aide du manuel fournit avec la .dll et je n'ai rien trouvé à ce sujet :/
Quand est-ce que j'ouvre la connexion ? dans mes méthodes actionRows/Getrows ?(comme avant donc et je les ferme juste après)
Je ne pense pas être très loin de la solution mais j'y suis point encore...
Je vais tenter d'ouvrir/fermer les connexion au serveur dans mes méthodes, faire des tests de connexion etc...
Si de votre coté vous avez une solution, je suis preneur ;)
Merci.