Database 将日期和时间VB插入数据库表

Database 将日期和时间VB插入数据库表,database,vb.net,date,time,Database,Vb.net,Date,Time,我使用DateTimePicker选择日期,并使用一个包含时间的文本框 我试图将这两个值都插入到一个表中,但它不起作用 INSERT INTO dt (date) VALUES('" & DateTimePicker1.Text & TextBox1.Text & "'); date列属于datetime类型 代码显示此错误:从字符串转换日期时间时转换失败。两个文本框的文本之间需要一个空格: insert into dt (date) values('" &

我使用DateTimePicker选择日期,并使用一个包含时间的文本框

我试图将这两个值都插入到一个表中,但它不起作用

INSERT INTO dt (date) VALUES('" & DateTimePicker1.Text  & TextBox1.Text & "');
date
列属于
datetime
类型


代码显示此错误:从字符串转换日期时间时转换失败。两个文本框的文本之间需要一个空格:

insert into dt (date) values('" & DateTimePicker1.Text & " " & TextBox1.Text & "')

必须对日期进行格式化,才能将特定区域性正确插入数据库。或者只使用与区域性无关的字符串,例如
dd-MMM-yyyy

第一步是从
DateTimePicker1.Text
TextBox1.Text
创建日期时间-您可以使用。然后将日期时间格式化为
。ToString(“G”)
——查看MSDN上的这篇文章,了解更多标准格式:


这里也描述了类似的问题。

您确实不希望将日期时间作为字符串传递到数据库,因为它们的表示方式存在文化差异。相反,您可以使用参数传递datetime类型。对于SQL Server,您需要类似于

Dim dt As DateTime
dt = DateTimePicker1.Value.Date ' use only the date portion '
Dim tim As DateTime
If DateTime.TryParse(TextBox1.Text, tim) Then
    dt = dt + tim.TimeOfDay ' use only the time portion '
Else
    MsgBox("Could not understand the value in the time box. Using midnight.")
End If

Dim sql As String = "INSERT INTO dt (date) VALUES (@DateTime)"

Dim sqlCmd As New SqlCommand(sql, sqlConn)
sqlCmd.Parameters.Add(New SqlParameter With {.ParameterName = "@DateTime", .SqlDbType = SqlDbType.DateTime, .Value = dt})
'TODO: ExecuteNonQuery

TextBox.Text的值是多少?如果这是vb.net,为什么会有分号?textbox的值是12:50,我从sql express中复制了这条语句,这就是为什么会有分号。请在问题中包含您遇到的错误。它显示了一个错误,它说转换datetime时从字符stringi转换失败我在上面的代码中添加了连接并打开了连接,但它不起作用,我应该添加什么?@Legend Lb您需要向我们显示您正在使用的实际代码并展开“它不起作用”-您是否收到错误消息,没有发生任何事情或…+1。你是对的,参数是最终的解决方案。我们总是在生产代码中使用它们。