Я пытаюсь отобразить в ячейке DataGridView значение, представляющее оставшиеся дни между двумя датами, и я использую DateDiff, но он возвращает пустую ячейку, и я не знаю, что я упускаю или делаю неправильно. Мой код следует, пожалуйста, помогите.
Спасибо.
Private Sub ValidadeLicencas_Load (отправитель как объект, e как EventArgs) обрабатывает Me.Load
Conectar()
Dim cmd As New SqlCommand("SELECT AlvaraNumero,NomeEmpresa,ContactoEmpresa,ValidadeLicenca FROM EmissaoLicenca", conexoes)
Dim da As New SqlDataAdapter
da.SelectCommand = cmd
Dim dt As New DataTable
dt.Clear()
da.Fill(dt)
DataGridViewValidade.DataSource = dt
conexoes.Close()
DataGridViewValidade.AllowUserToAddRows = False
Dim ColDias As New DataGridViewTextBoxColumn
ColDias.Name = "drestantes"
ColDias.HeaderText = "Dias Restantes"
ColDias.Width = 150
DataGridViewValidade.Columns.Insert(4, ColDias)
For Each row As DataGridViewRow In DataGridViewValidade.Rows
Dim expdata_v As Date = row.Cells("ValidadeLicenca").Value
Dim calcdias_v As Integer = DateDiff(DateInterval.Year, Date.Now, expdata_v)
row.Cells("drestantes").Value = calcdias_v
Next
End Sub
Результат должен быть примерно таким:
Но вместо этого я получаю это.
Было бы проще добавить вычисление разницы дат в SQL-запрос.
SELECT AlvaraNumero,NomeEmpresa,ContactoEmpresa,ValidadeLicenca, DATEDIFF(YEAR, ValidadeLicenca , GETDATE()) [drestantes] FROM EmissaoLicenca
Спасибо, друг, это решило мою проблему. Это был мой первый вопрос здесь. :D
Что такое «SQL SERVER Enterprise 13?»?