Как рассчитать дату истечения срока действия с помощью VB.NET и SQL Server, используя Visual Studio 2019 и SQL SERVER Enterprise 13?

Я пытаюсь отобразить в ячейке 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

Результат должен быть примерно таким:

AlvaraNumero НомEmpresa КонтактыEmpresa ValidadeLicenca Диас Рестантес AlvaraNumero1 НомEmpresa1 КонтактыEmpresa1 30.11.2022 8 AlvaraNumero2 НомEmpresa2 КонтактыEmpresa2 25.11.2022 3

Но вместо этого я получаю это.

AlvaraNumero НомEmpresa КонтактыEmpresa ValidadeLicenca Диас Рестантес AlvaraNumero1 НомEmpresa1 КонтактыEmpresa1 30.11.2022 AlvaraNumero2 НомEmpresa2 КонтактыEmpresa2 25.11.2022

Что такое «SQL SERVER Enterprise 13?»?

Dai 24.11.2022 02:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
96
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Было бы проще добавить вычисление разницы дат в SQL-запрос.

SELECT AlvaraNumero,NomeEmpresa,ContactoEmpresa,ValidadeLicenca, DATEDIFF(YEAR, ValidadeLicenca , GETDATE()) [drestantes] FROM EmissaoLicenca

Спасибо, друг, это решило мою проблему. Это был мой первый вопрос здесь. :D

code4fun 22.11.2022 16:28

Другие вопросы по теме