ASP.Net / C# / SQL Server :Exécuter une requête incluant une table temporaire
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:
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:
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:
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 :calim2: