Dies sollte ein ziemlich einfaches sein. Ich erstelle einen Datensatz, der ein Beschreibungsfeld enthält, nach dem ich sortieren möchte. Der Grund, warum ich den Datenadapter und nicht in meinem SQL sortieren möchte, ist, dass ich bereits nach den Ergebnissen sortiere, die einen bestimmten Wert haben.Sortieren DataAdapter Alphabetisch - VB.Net
My SQL sieht wie folgt aus:
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
Mein VB wie folgt aussieht:
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)
Ich möchte die datarows sortieren ist ds.Tables (0) durch pif_desc aber immer noch die Zeilen mit Fundunits> 0 zuerst aufgeführt.
Ich bin auch offen für andere Vorschläge, wie ich die richtige Bestellung erreichen kann.
ich versucht hatte, aber ich will nicht die Top-Werte, sondern fundunits bestellt werden, nur für sie an der Spitze der aufgeführten Liste und die aufgelisteten alphabetisch. Ich denke, ich muss zwei Listen machen und sie kombinieren. – TGuimond
Ich habe meine Antwort so aktualisiert, dass sie zu dem passt, nach dem ich glaube, dass Sie danach fragen ... – bitxwise