Vb.net 用于在日期时间选择器上选择日期的属性是什么?

Vb.net 用于在日期时间选择器上选择日期的属性是什么?,vb.net,datetimepicker,Vb.net,Datetimepicker,我试图使用一个简单的select语句和一个日期时间选择器从数据库中提取值。你能帮我怎么做吗?当我在查询中输入特定日期时,select语句在SQL中工作,但我希望能够在datetimepicker上选择日期,并能够检索该特定日期的数据 这是迄今为止的代码: Dim command As String = "select CUSORDER.ORDERID, CUSORDER.ORDERDATE, CUSORDER.STAFFID, CUSTOMER.CUSTOMERID, CUSTOMER.CU

我试图使用一个简单的select语句和一个日期时间选择器从数据库中提取值。你能帮我怎么做吗?当我在查询中输入特定日期时,select语句在SQL中工作,但我希望能够在datetimepicker上选择日期,并能够检索该特定日期的数据

这是迄今为止的代码:

Dim command As String = "select CUSORDER.ORDERID, CUSORDER.ORDERDATE, 
CUSORDER.STAFFID, CUSTOMER.CUSTOMERID,  CUSTOMER.CUSTOMERADD_1 
FROM CUSORDER,CUSTOMER 
WHERE CUSORDER.CUSTOMERID = CUSTOMER.CUSTOMERID AND 
CUSORDER.ORDERDATE = '" & DateTimePicker1.Value.ToString & "'"

我是否使用了正确的属性和格式来执行此操作?

您不应该连接字符串以获取sql查询。这可能导致漏洞、本地化问题或其他问题。您应该始终将查询参数化:

Dim sql As String = "select CUSORDER.ORDERID, CUSORDER.ORDERDATE, CUSORDER.STAFFID, CUSTOMER.CUSTOMERID, CUSTOMER.CUSTOMERADD_1 FROM CUSORDER,CUSTOMER WHERE CUSORDER.CUSTOMERID = CUSTOMER.CUSTOMERID AND CUSORDER.ORDERDATE = @ORDERDATE"
Using con = New SqlConnection(YourConnectionString)
    Using command = New SqlCommand(sql, con)
        command.Parameters.AddWithValue("@ORDERDATE", DateTimePicker1.Value)
        con.Open()
        Using reader = command.ExecuteReader()
            While reader.Read()
                ' ... '
            End While
        End Using
    End Using
End Using 

如果有帮助,我将执行以下操作:

Dim dteTemp As Date = DateTimePicker.value 'might help any injection code as the convert will fail.

Dim command As String = "select CUSORDER.ORDERID, CUSORDER.ORDERDATE, CUSORDER.STAFFID,
CUSTOMER.CUSTOMERID,  CUSTOMER.CUSTOMERADD_1 FROM CUSORDER,CUSTOMER WHERE
(CUSORDER.CUSTOMERID = CUSTOMER.CUSTOMERID) AND
(CUSORDER.ORDERDATE = '" & dteTemp.ToString("yyyy/MM/dd HH:mm:ss") & "')"

日期的格式设置避免了PC位于SQL数据库本地的不同日期的问题。

Value
是正确的,但是您应该使用参数化查询,而不是将日期转换为字符串并连接SQL。对不起,我是编程初学者,所以我不知道您所说的是什么意思?这容易吗?@112221:您自己正在构建一个SQL字符串,这可能会导致被称为SQL注入的安全问题。要轻松解决这个问题并不难,请阅读使用ADO参数化查询。@PaulSasik-在这种情况下,问题还在于将日期格式化为字符串。web服务器和SQL server的使用可能会有很大的不同。安全和其他问题都不是问题,这只是一个大学项目,让它正常工作是我的首要任务。@112221:即使在大学里,你也应该使用安全代码,这也可以防止出现类似问题;)我想你没有注意到这个答案也解决了你的问题,因为问题是日期格式。我没有将字符串传递给db,而是将日期时间传递给db,因此格式没有问题。