cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014
-
30 août 2008 à 17:35
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
15 sept. 2008 à 12:07
Salut à tous!
j'ai une question!
je me développe une petite appli et en fait ce que je voudrais faire, c'est ne pas avoir de requete SQL dans mon code et dans ma DAL appeler directement des requetes paramétrées qui sont dans une base access.
Quelqu'un aurait il un bon tuto pour que je puisse voir comment appeler ma requete et surtout le parametre.
J'imagine qu'il faut insérer le paramètre avec la commande addparam .... mais j'aimerais un exemple dtaillé si possible!
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 31 août 2008 à 12:00
Salut!
j'ai deja jeté un oeil sur ces tutoriels, mais c'est pas exactement ce que je veux faire!
En fait je ne veux pas qu'il y ait de code SQL dans mes pages je voudrais utiliser les commandes commandtype.storedProcedure .... mais le probleme c'est que ej n'ai pas toute la méthode pour faire la connection a la base, comment passer les parametres comme je les ai appelé dans ma requete access.....
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 31 août 2008 à 21:49
Si framework 3.5, regarder du côté de linq2SQL, ça facilite pas mal les choses... Sinon, recherches sur le site, y'a beaucoup de sources et messages sur le forum concernant ce que tu cherches à faire avec la méthode "old school"
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 31 août 2008 à 22:47
oui maintenant j'utilise le framework 3.5, mais juste depuis tres peu de temps et je dois avouer que link2sql je ne connais que de nom, si vous avez des tutos je suis tres preneur!
C'est vrai que ce que je veux faire c'est "old school" mais je trouve que ca fonctionne bien!
Je vais jeter un oeil sur lin2SQL on va voir ce que ca donne!
Mais si toutefois vous avez toujours des réponses n'hésitez pas...
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 1 sept. 2008 à 17:06
Merci bien,
au 1er coup d'oeil ca a l'air plutot interessant, etant dans l'impossibilité de tester ca tout de suite, je vais voir ca ce soir chez moi au calme et je te tiens au courant!
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 7 sept. 2008 à 21:23
Salut!
Merci pour la source c'est nickel ca marche plutot pas mal!
Par contre j'ai un soucis!
je bosse donc sur une base Access qui a été copié dans le dossier bin/debug de mon projet!
j'ai mes requetes dans cette base mais quand je lance mon programme ca supprime mes requetes!
Il me les a affiché une fois, j'ai recommencé, mais ca m'a dit que ca n'avait pas trouvé la requete que j'avais passé en parametre, et en regardant dans ma base, ben en fait elles n'etaient plus dans la partie requete!!
Quelqu'un sait il d'ou ca pourrait venir?
ca vient pas du fait que je bosse sur mon code en ayant la base ouverte?
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 8 sept. 2008 à 09:40
Salut,
je vais mettre un bout de code ce soir car la je suis au boulot et je n'ai pas mon code avec moi!
En fait j'ai retesté hier pendant longtemps et des que je mets l'appli en fonctionnement pour la tester mes requetes s'effacent et ma base passent de 356Ko a 176 Ko!
Je me connecte a l'aide de procStock, faites a l'aide d'un tuto d'ici, mais je ne vois pas du tout d'ou ca peut venir!
cs_niko14
Messages postés209Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention10 octobre 2014 8 sept. 2008 à 21:12
Comme dit ce matin voici le code que j'ai sur ma page!
y en a un paquet et évitez les remarques sur la propreté du code car ce sont des tests avant de partir sur la "vraie " application
Si quelqu'un voit pourquoi a chaque démarrage de l'appli ou presque ca me supprime mes requetes de la base.... attention le code:
private void Form1_Load(object sender, EventArgs e)
{
////Connection à la base de données
//OleDbConnection MaConnect = new System.Data.OleDb.OleDbConnection();
//string ConnectionString;
////DataAdapter
//OleDbDataAdapter MonDataAdapter;
//OleDbCommand CmdSelect;
//DataSet ds = new DataSet();
//ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath.ToString() + "\\essai1.mdb";
//Connection à la base de données
OleDbConnection MaConnect = new System.Data.OleDb.OleDbConnection();
//DataAdapter
OleDbDataAdapter MonDataAdapter2;
//Objet de command
OleDbCommand CmdSelect2;//, CmdInsert, CmdUpdate, CmdDelete;
//Le Dataset
DataSet ds2 = new DataSet();
string ConnectionString;
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath.ToString() + "\\essai1.mdb";
MaConnect.ConnectionString = ConnectionString;
CmdSelect2 = new OleDbCommand("gpeRq", MaConnect);
CmdSelect2.CommandType = System.Data.CommandType.StoredProcedure;
//on utilise le dataadapter pour remplir le dataset
//on attribue la command au SelectCommand
MonDataAdapter2 = new OleDbDataAdapter(CmdSelect2);
//on vide le dataset
ds2.Clear();
//On rempli le dataset
MonDataAdapter2.Fill(ds2);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//Connection à la base de données
OleDbConnection MaConnect = new System.Data.OleDb.OleDbConnection();
string ConnectionString;
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath.ToString() + "\\essai1.mdb";
//on crée le parametre
OleDbParameter param = new OleDbParameter("@id_groupe", OleDbType.Integer);
param.Value = 1; //int.Parse(comboBox1.SelectedItem.ToString());
CmdSelect2.Parameters.Add(param);
//on utilise le dataadapter pour remplir le dataset
//on attribue la command au SelectCommand
MonDataAdapter2 = new OleDbDataAdapter(CmdSelect2);
//on vide le dataset
ds2.Clear();
//On rempli le dataset
MonDataAdapter2.Fill(ds2);
//CM = (CurrencyManager)BindingContext[ds.Tables["Liste_Categorie"]];
////on affecte le datasource du datagrid afin de visualiser les données
//dataGridView1.DataSource = ds.Tables[0];
dataGridView2.DataSource = ds2.Tables[0];
//comboBox1.DataSource = ds.Tables[0];
}
private void button1_Click(object sender, EventArgs e)
{
//Connection à la base de données
OleDbConnection MaConnect = new System.Data.OleDb.OleDbConnection();
string ConnectionString;
//DataAdapter
OleDbDataAdapter MonDataAdapter;
OleDbCommand CmdSelect;
DataSet ds = new DataSet();
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath.ToString() + "\\essai1.mdb";
MaConnect.ConnectionString = ConnectionString;
//Ici on "attaque" le serveur localhost et la base de données northwind
//MaConnect = new OleDbConnection(ConnectionString);
//l'objet connection est crée
try
{
//lbl_aide.Text = "On affiche le resultat d'un select simple";
//Un simple select
//CmdSelect = new SqlCommand("SELECT CategoryId, CategoryName, Description FROM CATEGORIES", MaConnect);
//CmdSelect.CommandType = System.Data.CommandType.Text;
//Pour une procedure stockee nommée SP_SELECT_CATEGORIES (par exemple)
CmdSelect = new OleDbCommand("gpeRq", MaConnect);
CmdSelect.CommandType = System.Data.CommandType.StoredProcedure;
//on utilise le dataadapter pour remplir le dataset
//on attribue la command au SelectCommand
MonDataAdapter = new OleDbDataAdapter(CmdSelect);
//on vide le dataset
ds.Clear();
//On rempli le dataset
MonDataAdapter.Fill(ds);
//CM = (CurrencyManager)BindingContext[ds.Tables["Liste_Categorie"]];
////on affecte le datasource du datagrid afin de visualiser les données
//dataGridView1.DataSource = ds.Tables[0];
DataTable dt = ds.Tables[0];
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 sept. 2008 à 12:07
Salut,
Une remarque quand même sur le code : Path.Combine is good :p
Sinon : "Si quelqu'un voit pourquoi a chaque démarrage de l'appli ou presque ca me supprime mes requetes de la base"
"a chaque démarrage de l'appli" : quand le code a été modifié et que tu lances depuis VS ?
"ou presque" : quand le code n'a pas été modifié ou que tu lances en dehors de VS ?
Je suppose que le fichier mdb fait partie du projet et qu'il est en copie automatique vers le répertoire de sortie, si c'est le cas la propriété "Copy to Output Directory" (en français je ne sais plus) devrait t'intéresser.