首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQL中比较和返回多个值

如何在SQL中比较和返回多个值
EN

Stack Overflow用户
提问于 2018-05-30 19:51:04
回答 1查看 62关注 0票数 0

我有一个SQL数据库与字段ServiceDate,CLID,读取,DueAmt,PaidAmt,余额和状态。这个想法是选择过去4个月没有支付的帐户,并使用VB.Net (VS18集成开发环境)将结果输出到Listivew控件。我需要关于如何在Visual Studio IDE中使用VB.Net编写此查询的示例或参考。

我访问过的大多数其他平台都没有提供足够的解释说明和代码来获得我应该做的事情并从中学习。此外,我希望列表视图控件中的ServiceDate列被格式化为short date,DueAmt,PaidAmt和Balance to Currency。

我将不胜感激谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 06:07:49

我假设SQL Server、ServiceDate在数据库中是一个DataTime,而在数据库中平衡为某种数字。

代码语言:javascript
复制
Private Function GetOldAccounts() As DataTable
        Dim dt As New DataTable
        Using cn As New SqlConnection("Your connection string")
            Using cmd As New SqlCommand("Select * From YourTable Where [ServiceDate] < @d AND  [Balance] > 0")
                cmd.Parameters.Add("@d", SqlDbType.DateTime).Value = DateTime.Now.AddMonths(-4)
                cn.Open()
                Using dr As SqlDataReader = cmd.ExecuteReader
                    If dr.HasRows Then
                        dt.Load(dr)
                    Else
                        Return Nothing
                    End If
                End Using
            End Using
        End Using
        Return dt
    End Function

我以为您能够找到如何从DataTable填充ListView。ListViews显示一个文本属性,它是一个字符串。如果您需要输入列,那么可以查看DataGridView,它可以很容易地绑定到DataTable。

代码语言:javascript
复制
Private Sub FillListView()
        Dim dt As DataTable = GetOldAccounts()
        lv.Items.Clear()
        Dim lstAccounts As New List(Of ListViewItem)
        lv.BeginUpdate() 'keeps the control from repaintinng on every iteration
        For Each r As DataRow In dt.Rows
            Dim li As New ListViewItem()
            li.Text = CDate(r("ServiceDate")).ToShortDateString
            li.SubItems.Add(r("CLID").ToString)
            li.SubItems.Add(r("Reading").ToString)
            li.SubItems.Add(r("DueAmt").ToString)
            li.SubItems.Add(CDec(r("PaidAmt")).ToString("N2"))
            li.SubItems.Add(CDec(r("Balance")).ToString("C")) 'Will include the $
            li.SubItems.Add(r("Status").ToString)
            Dim i As Integer
            Dim s As String = i.ToString("C")
            lstAccounts.Add(li)
        Next
        lv.BeginUpdate() 'keeps the control from repaintinng on every addition
        lv.Items.AddRange(lstAccounts.ToArray)
        lv.EndUpdate()
    End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50603961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档