Bonjour.
J'ai une requête un peu compliquée, je souhaite faire une première requête qui me retourne des résultats, puis, selon ces résultats, y ajouter d'autres résultats.
Tout cela doit s'afficher dans un seul et unique gridview (pour conserver la largeur des colonnes et pouvoir trier les résultats, ...)

Je m'explique :

-- J'insère mes résultats dans ma table temporaire
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT *
INTO #T
FROM (
	    SELECT *
            FROM matable T2
            WHERE -- mes conditions
) T2

-- Je lis tous les résultats de la table temporaire

-- J'y ajoute d'autres résultats, en fonction des lignes de la table temporaire
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
UNION
SELECT *
FROM  matable T2
WHERE T2.id in
	(
	SELECT id
	FROM  matable INNER JOIN
	#T ON #T.idarticle = matable.id
	)
Je précise que ma requête est construite dynamiquement dans le code C# de ma page ASP.net :

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
            string[] split = Txt_Recherche_modifie.Text.Split(new Char[] { ' ', ',', '.', ':', '\t' });
            string marequete = "SELECT *";
            marequete = marequete + " FROMmatable";
            marequete = marequete + " WHERE MARQUE is not null";
            foreach (string s in split)
            {
                if (s.Trim() != "")
                    marequete = marequete + " AND (replace(modele,' ','') like '%" + s.Trim() + "%' OR marque like '%" + s.Trim() + "%')";
            }
            marequete = marequete + " ORDER BY Marque, Modele";
            if (Txt_Recherche.Text != "") {
                MonSQL.SelectCommand = marequete ;
            }
Je sais faire ça via une procédure stockée mais ça ne m'arrange absolument pas. J'ai bien la piste d'un Dataset ou Datareader mais je ne suis pas sur.
Pouvez-vous m'aider svp? Merciiii