如何将数据库中的两个日期和时间条件设置为标签当前日期和时间

时间:2018-04-02 08:46:00

标签: vb.net access

如何在标签表单中比较MS Access列“时间”中的日期。 继承我的代码

Dim sql = "Select CompanyCode From LAPostingCoCode where CompanyCode = '" + ComboBox1.text"' AND User = '" & txtuser.text & "' AND Time = '" & LblTime.text & "'"

Using Olecon As New OleDbConnection(cons)
    Using command as new OleDbDCommand(sql,olecon)
        Using adapter as New OleDbDataAdapter(command)
            Dim Table As New DataTable()
            adapter.Fill(table)

            If (table.Rows.Count > 0 ) Then
                btnSave.Enabled = false
            Else
                btnSave.Enabled = true
            End If
        End Using
    End Using
End using

我想将数据库列中的日期和时间与表单标签当前日期和时间进行比较。因此,如果数据库中的日期和时间是02-02-18 4:42:01,而我的标签是02-02-18 05:02:31。按钮保存将启用= true,因为时间几乎是下午5点。当4:42:01等于时间标签。保存按钮仍然启用= false。

我正在使用vb.net和MS访问。请帮帮我。感谢

1 个答案:

答案 0 :(得分:0)

该代码可让您比较两个日期,请根据需要修改代码:

 'Assuming your date is formatted as : dd/mm/yyyy

 Dim date1 = DateTime.Parse("02/05/2018")

 Dim date2 = DateTime.Parse("03/07/2018")

 If date1.Date >date2.Date Then

 End if

现在举例来说,例如,您想要将表格的dateTime列与label的日期(我的意思是.text)进行比较,请执行此操作“

 Dim dt1 = DateTime.Parse(yourDataTable(0)(3))  'Here 0 is the row count and 3 is the column count

'Follow the first code block's code now :)

建议:请不要在Select语句中使用直接值,因为它打开了Sql-Injection的大门。

Read more about SQL-Injection

相反,传递参数并使用SqlCommand传递值:

 Dim cmd as new SqlCommand("Select CompanyCode From LAPostingCoCode where CompanyCode = @code",connection)

 cmd.Parameters.Add("@code",SqlDbType.VarChar).Value = ComboBox1.text

并且请使用Parameter.Add方法,大多数人使用AddWithValue这不是正确的方法。因为在某些时候,它可能不会导致错误/可能不会与数据冲突,但在大多数情况下它会损坏原因在于,它将数据库类型推断为查询参数。

Read more here

希望这会有所帮助:)