繁体   English   中英

按字母顺序对DataAdapter进行排序-VB.Net

[英]Sort DataAdapter Alphabetically - VB.Net

这应该是一个相当简单的。 我正在创建一个数据集,其中包含一个我想要排序的描述字段。 我想对dataadapter而不是在我的SQL中排序的原因是我已经按具有特定值的结果排序。

我的SQL看起来像这样:

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

我的VB看起来像这样:

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)

我想通过pif_desc对datarows进行排序是ds.tables(0),但仍然首先列出基金单元> 0的行。

我也愿意就如何实现正确订购提出其他建议。

每当在代码中进行排序或过滤时,都应使用DataView 看一看。

您正在寻找的输出更像是这样吗?

pif_desc    fundunits
ABCDEF      6
CBCDEG      2
DEFGHI      4
ADFKHG      0
BFJSKL      0
XDFDKF      0

如果是这样,请尝试以下SQL查询:

SELECT  pif_desc,
        pif_fund,
        psf_end,
        (CASE WHEN fundunits IS Null THEN 0
        ELSE fundunits END) As fundunits,
        (CASE WHEN fundunits IS Null THEN 0
        ELSE 1 END) As pif_order
FROM    (
            SELECT  pif_desc,
                    pif_fund,
                    psf_end,
                    SUM(pmi_units) 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
        ) pifs
ORDER   BY pif_order,pif_desc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM