我有一个SQL数据库与字段ServiceDate,CLID,读取,DueAmt,PaidAmt,余额和状态。这个想法是选择过去4个月没有支付的帐户,并使用VB.Net (VS18集成开发环境)将结果输出到Listivew控件。我需要关于如何在Visual Studio IDE中使用VB.Net编写此查询的示例或参考。
我访问过的大多数其他平台都没有提供足够的解释说明和代码来获得我应该做的事情并从中学习。此外,我希望列表视图控件中的ServiceDate列被格式化为short date,DueAmt,PaidAmt和Balance to Currency。
我将不胜感激谢谢你的帮助。
发布于 2018-05-31 06:07:49
我假设SQL Server、ServiceDate在数据库中是一个DataTime,而在数据库中平衡为某种数字。
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。
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
https://stackoverflow.com/questions/50603961
复制相似问题