Appeler une requete parametrée depuis le code [Résolu]

cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 30 août 2008 à 17:35 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 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!

Merci bien

Niko14
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 1 sept. 2008 à 16:27
3
Merci
regarde mon source http://www.csharpfr.com/code.aspx?ID=27738
ca pourra peut etre t'aider

<hr />Arthenius
"Ce qui ne me tue pas, me rend plus fort..."

Merci Arthenius 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Arthenius
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 31 août 2008 à 11:41
0
Merci
Hello,

Avec la fonction recherche du site, tu aurais peut-être trouvé ces deux tuto :

http://www.csharpfr.com/tutoriaux/COMMENT-FAIRE-REQUETE-PARAMETREE-DANS-BASE-DONNEE_710.aspx
http://www.csharpfr.com/tutoriaux/UTILISATION-REQUETES-PARAMETREES-AVEC-ADO-NET_709.aspx

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 31 août 2008 à 12:00
0
Merci
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.....

j'espere avoir bien réussi à m'exprimer :)

merci de votre aide

Niko14
Commenter la réponse de cs_niko14
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 31 août 2008 à 21:49
0
Merci
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"
Commenter la réponse de cs_Bidou
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 31 août 2008 à 22:47
0
Merci
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...

Niko14
Commenter la réponse de cs_niko14
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 1 sept. 2008 à 17:06
0
Merci
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!

Merci bien.

Niko14
Commenter la réponse de cs_niko14
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 7 sept. 2008 à 21:23
0
Merci
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?

Merci

Niko14
Commenter la réponse de cs_niko14
Arthenius 1183 Messages postés mercredi 21 janvier 2004Date d'inscription 6 septembre 2011 Dernière intervention - 8 sept. 2008 à 08:51
0
Merci
un bout de code peut etre ??
pas de raison que tes sp disparraisse comme ca...

c'est bizarre

<hr />Arthenius
"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 8 sept. 2008 à 09:40
0
Merci
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!

Niko14
Commenter la réponse de cs_niko14
cs_niko14 209 Messages postés jeudi 12 janvier 2006Date d'inscription 10 octobre 2014 Dernière intervention - 8 sept. 2008 à 21:12
0
Merci
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";

            //DataAdapter
             OleDbDataAdapter MonDataAdapter2;
            //Objet de command
             OleDbCommand CmdSelect2;//, CmdInsert, CmdUpdate, CmdDelete;
            //Le Dataset

             DataSet ds2 = new DataSet();
             MaConnect.ConnectionString = ConnectionString;
            //Pour une procedure stockee nommée SP_SELECT_CATEGORIES (par exemple)
            CmdSelect2 = new OleDbCommand("membresRq", MaConnect);
            CmdSelect2.CommandType = System.Data.CommandType.StoredProcedure;

            //MonDataAdapter2.SelectCommand.Parameters.Add("@id_groupe", OleDbType.Integer).Value = int.Parse(comboBox1.SelectedItem.ToString());

            //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];

                comboBox1.DataSource = dt;
                comboBox1.ValueMember = "nom_groupe";
                comboBox1.DisplayMember = "id_goupe";
                //MaConnect.Close();
            }
            catch (Exception xcp)
            {
                MessageBox.Show(xcp.Message);
            }
        }

    }

merci beaucoup de votre aide!

Niko14
Commenter la réponse de cs_niko14
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2008 à 12:07
0
Merci
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.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.