我有这段代码
Dim conex As SqlConnection = New SqlConnection(conxst)
Dim caixa As Integer = ComboBox1.SelectedItem
Dim verdat As Date = DateTimePicker1.Text
Dim verdat1 As Date = "05/07/2012"
conex.Open()
Dim ds As New DataSet
Dim dt As New DataTable
ds.Tables.Add(dt)
Dim da As New SqlDataAdapter("select codigo,data,horario from alteraca where data = '" & verdat1 & "' ", conex)
da.Fill(dt)
当verdat1格式为“mm / dd / yyyy”时,此代码有效,我如何将日期从我的datetimepicker(dd / mm / yyyy)转换为格式“mm / dd / yyyy”以放置在语句中???谢谢。
答案 0 :(得分:4)
当您已经有二进制表示时,不应该使用值的字符串表示。
Dim dt As New DataTable
Using conex As New SqlConnection(conxst)
conex.Open()
Using cmd As New SqlCommand("select codigo, data, horario from alteraca where data = @data", conex)
cmd.Parameters.AddWithValue("@data", DateTimePicker1.Value)
Using da As New SqlDataAdapter(cmd)
da.Fill(dt)
End Using
End Using
End Using
答案 1 :(得分:1)
在sql查询中 -use to_date将String转换为date - 以及反向的char
在你的情况下
select codigo,data,horario from alteraca where data = to_date('" & verdat1 & "','dd/mm/yyyy') ", conex
此处'dd/mm/yyyy'
是您变量的格式......
答案 2 :(得分:1)
使用
verdat1.ToString("MM/dd/yyyy")
您可以选择将日期转换为字符串的方式。
此外,您可以根据需要设置dateTimePicker
自定义格式:
dateTimePicker1.Format = DateTimePickerFormat.Custom
dateTimePicker1.CustomFormat = "MM/dd/yyyy"
答案 3 :(得分:1)
实际上,执行查询的更好(更安全的方法)是使用参数和Using
语句。 Using
语句会自动关闭连接,命令和适配器。
Dim caixa As Integer = ComboBox1.SelectedItem
Dim verdat As Date = DateTimePicker1.Text
Dim verdat1 As Date = "05/07/2012"
Dim ds As New DataSet
Dim dt As New DataTable
Using conex as New SQLConnection(conxst)
conex.Open()
Using cmdex as New SQLCommand("select codigo,data,horario from alteraca where data = @DATE " , conxst)
cmdex.Parameters.AddWithValue("@DATE",verdat1)
Using da As New SqlDataAdapter(cmdex)
da.Fill(dt)
End Using
End Using
End Using
答案 4 :(得分:0)
您可以像这样转换日期:
verdat1.ToString("MM/dd/yyyy")
答案 5 :(得分:0)
您可以使用DateTimePicker1.value。很容易解决