[英]error insert date mysql vb.net
我的数据库中有一个列为故障日期的列。 当我向数据库插入故障时,它的类型为“日期”,我对日期列有问题
Private Sub BT_SAVE_Click(sender As Object, e As EventArgs) Handles BT_SAVE.Click
Dim SQLStatement As String = "INSERT INTO Pannes VALUES(03082016,'" & CB_AV.SelectedItem.ToString() & "','" & TXT_PAN.Text & "','" & TXT_DET.Text & "','" & DateTimePicker1.Value.ToString("yyyy-mm-dd") & "')"
SavePann(SQLStatement)
End Sub
我在第1行的“ DATE”列收到错误的错误日期值:“ 2016-47-16”,有人可以帮忙吗?
您的月份不正确。 '2016-47-16'。 我怀疑这是一分钟的价值。
请改用.ToString("yyyy-MM-dd")
。
请使用SQL参数,而不是使用大的插入字符串。 这样可以避免出现您所描述的错误。
同样,当MySql将其转换回Date
值时,您也不必将Date
参数转换为String。 只需使用DateTimePicker.Value
。
Dim SQLStatement As String = "INSERT INTO Pannes VALUES(@p1,@p2,@p3,@p4,@p5)"
(我建议将参数名称替换为有意义的名称)。
并且在SavePann
使用“ Using
因为它会自动处理您的连接和命令对象。
Using conn as New MySqlConnection
conn.ConnectionString = "YourSqlConnectionString"
conn.Open()
Using cmd as New MySqlCommand
cmd.Connection = conn
cmd.CommandText = SQLStatement
cmd.Prepare()
cmd.Parameters.AddWithValue("@p1", 03082016)
cmd.Parameters.AddWithValue("@p2", CB_AV.SelectedItem.ToString())
cmd.Parameters.AddWithValue("@p3", TXT_PAN.Text)
cmd.Parameters.AddWithValue("@p4", TXT_DET.Text)
cmd.Parameters.AddWithValue("@p5", DateTimePicker1.Value) 'No ToString needed'
cmd.ExecuteNonQuery()
End Using
End Using
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.