Сравните даты в Visual Basic - PullRequest
0 голосов
/ 10 марта 2019

Я хочу сравнить текущую дату с датами, которые я сохранил в своей базе данных. Когда дата в базе данных прошла 30 дней с текущей даты, я хочу отобразить сообщение о том, что период истек, и клиент должен заплатить деньги. Ниже мой код

con = New SqlConnection
con.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\user\Documents\visual studio 2015\Projects\Database1.mdf;Integrated Security=True;"

Dim READER As SqlDataReader
Dim date1 As Date

date1 = Convert.ToDateTime(Today)

Try
    For i As Integer = 0 To DataGridView1.Rows.Count - 1
        con.Open()

        COMMAND = New SqlCommand("SELECT distinct Surname,Money,Date from [Table] where money!=N'no'", con)
        READER = COMMAND.ExecuteReader

        While READER.Read()
            If date1 > READER(2).AddDays(30) Then
                MessageBox.Show("The customer N'" & TextBox1.Text & " has debts N'" & ComboBox3.SelectedItem)
            End If
        End While

        con.Close()
    Next

    con.Close()

Catch ex As SqlException
    MessageBox.Show(ex.Message)
Finally
    con.Dispose()
End Try

1 Ответ

0 голосов
/ 10 марта 2019

Вы без необходимости используете Convert.ToDateTime для преобразования Today, который уже является Date в Date.С другой стороны Reader(2) возвращает Object, который вы не конвертируете в Date.

Но зачем делать это сравнение в VB?Вы возвращаете потенциально большое количество записей, которые вам придется удалить.Сделайте сравнение в SQL.

SELECT DISTINCT Surname, Money, Date
FROM [Table]
WHERE Money != N'no' AND Date < (GETDATE() - 30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...