我有一个月中所有日子的列表(作为GridView标题)指的是用户选择哪个月,然后在GridView中显示。
显示一个月中的天数列表
Dim dt As New DataTable
Dim col As New DataColumn
dt.Columns.AddRange(New DataColumn(0) {New DataColumn("Date")})
For i As Integer = 1 To gsTotalDD 'gsTotalDD is total of days in a month
dt.Columns.Add(i)
Next
dt.Rows.Add("Status")
gvRptStatus.DataSource = dt
gvRptStatus.DataBind()
我在数据库中有一个名为 tblUpload 的表,用于存储上传的数据以及上传的数据日期。
我要做的是循环遍历所有标题值(天数列表),并检查是否有与上传数据日期匹配的日期。如果存在匹配值,代码dt.Rows.Add("Status")
上的状态行将显示状态已完成,如果没有匹配的日期则将单元格保留为空找到。
示例:GridView日期(第一行),第二个标题列为1,并且检查数据库是否具有匹配值。如果是,则在(第二行)状态,在第二列将显示完成。
修改
所以我想出了这样的匹配值:
Dim lCnn As New SqlConnection(gsConnString)
Dim lCmd As New SqlCommand
Dim lsCmd As String
Dim dt As New DataTable
Dim newDt As New DataTable
Dim sda As New SqlDataAdapter
Dim dtrow As DataRow = newDt.NewRow()
lCnn.Open()
lCmd.Connection = lCnn
lsCmd = "SELECT DISTINCT DATEPART (d, [date])"
lsCmd &= " FROM dbUpload..tblUpload"
lCmd.CommandText = lsCmd
sda.SelectCommand = lCmd
sda.Fill(newDt)
dt.Columns.AddRange(New DataColumn(0) {New DataColumn("Date")})
For i As Integer = 1 To gsTotalDD 'gsTotalDD is total of days in a month
dt.Columns.Add(i)
value2 = i
For Each col As DataColumn In newDt.Columns
value = newDt.Rows(i - 1).Item(col)
If value = value2 Then
MsgBox("Same value")
End If
Next
Next
通过这样做,我设法检查了价值,但这不是正确的方法,因为我想将状态设置为完成,如果获得匹配值或保留状态空,反之亦然。
谢谢。