Cela devrait être assez simple. Je crée un ensemble de données qui contiendra un champ de description que je voudrais trier. La raison pour laquelle je veux trier le dataadapter et pas dans mon SQL est que je commande déjà par les résultats qui ont une valeur particulière.Trier les données par ordre alphabétique - VB.Net
My SQL ressemble à ceci:
SELECT pif_desc, pif_fund, psf_end, (CASE WHEN SUM(pmi_units) IS Null THEN 0 ELSE SUM(pmi_units) END) As fundunits
FROM tbl_mem INNER JOIN tbl_sfunds
ON pm_scheme = psf_scheme
INNER JOIN tbl_invfun
ON tbl_fund = tbl_fund
LEFT JOIN pe_minv
ON pmi_fund = pif_fund AND pm_member = pmi_member
WHERE pm_member = @pm_member
GROUP BY pif_desc, pif_fund, psf_end
ORDER BY fundunits DESC
Mon VB ressemble à ceci:
Dim cmd As New SqlCommand("getMembersFundsDCGENST", conn)
cmd.CommandType = CommandType.StoredProcedure
Dim p_pm_member As New SqlParameter("@pm_member", SqlDbType.Int)
p_pm_member.Value = pm_member
cmd.Parameters.Add(p_pm_member)
Dim p_period_closing_date As New SqlParameter("@closingdate", SqlDbType.DateTime)
p_period_closing_date.Value = period_closing_date
cmd.Parameters.Add(p_closing_date)
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds)
Je veux trier les lignes de données est ds.Tables (0) par pif_desc mais toujours avoir les lignes avec fundunits> 0 listé en premier.
Je suis également ouvert à d'autres suggestions sur la façon dont je peux réaliser la bonne commande.
Je l'avais essayé, mais je ne veux pas que les valeurs supérieures à commander, mais fundunits, juste pour qu'ils figurent en haut de la liste et la liste alphabétique. Je pense que je vais devoir faire deux listes et les combiner. – TGuimond
J'ai mis à jour ma réponse pour correspondre à ce que je pense que vous demandez ... – bitxwise