Bonjour,
J'ai une procédure stockée, je lui passe en paramètre des booléens et des varchar.
Je souhaiterai que ma requete soit différente en fonction des booléens.
En faite c'est une recherche de pièce avec des bouts de la ref ou des bouts de la description.
L'utilisateur coche la case "la ref contien" et/ou la "decription contient" et il tape ce qu'il cherche dans les 2 textbox.
J'appelle donc ma procédure stockée:
si la checkbox ref contient est cochée et pas la checkbox la description contient alors je cherche dans....
et ainsi de suite.
Fonction déclenché en appuyant sur le boution rechercher dans mon form:
Ma procédure stockée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void Bt_Rechercher_Click(object sender, EventArgs e) { if (ChxRefContient.Checked == true || ChxDescContient.Checked == true) { SqlDataAdapter m_daDataAdapter; DataTable MaDataTable = new DataTable(); Grid_ResultatRecherche.DataSource = null; SqlConnection ConsultConnection = new SqlConnection(oSurveillant.strConnexion); m_daDataAdapter = new SqlDataAdapter("SearchAvecRefEtNom '" + Txt_RefIntContient.Text + "', '" + Txt_NomIntContient.Text + "' ,'" + ChxRefContient.Checked + "','" + ChxDescContient.Checked + "';", ConsultConnection); m_daDataAdapter.Fill(MaDataTable); ConsultConnection.Close(); Grid_ResultatRecherche.DataSource = MaDataTable; } }
La procédure stockée n'est pas correcte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[SearchAvecRefEtNom] (@RefIntContient varchar(50),@NomIntContient varchar(50),@ChxRefContient boolean ,@ChxDescContient boolean ) AS SELECT DISTINCT ITNBR,ITDSC,ITTYP FROM ITEMASA IF ( ChxRefContient = true AND ChxDescContient = false) WHERE ITNBR LIKE '%' + @RefIntContient + '%' END IF ELSE IF ( ChxRefContient = false AND ChxDescContient = true) WHERE ITDSC LIKE '%' + @NomIntContient + '%' ORDER BY ITNBR END IF ELSE WHERE ITNBR LIKE '%' + @RefIntContient + '%' AND ITDSC LIKE '%' + @NomIntContient + '%' ORDER BY ITNBR END IF
Merci d'avance
Partager