简体   繁体   English

错误插入日期mysql vb.net

[英]error insert date mysql vb.net

I have the column named breakdown date in my database. 我的数据库中有一个列为故障日期的列。 it's type is "Date" when i'm inserting into my database a breakdown i have a problem with the date column 当我向数据库插入故障时,它的类型为“日期”,我对日期列有问题

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

i get the error Incorrect date value: '2016-47-16' for column 'DATE' at row 1 Can anyone help? 我在第1行的“ DATE”列收到错误的错误日期值:“ 2016-47-16”,有人可以帮忙吗?

Your month is incorrect. 您的月份不正确。 '2016-47-16'. '2016-47-16'。 I suspect it's a minute value. 我怀疑这是一分钟的价值。

Use .ToString("yyyy-MM-dd") instead. 请改用.ToString("yyyy-MM-dd")

Please use SQL parameters instead of concat a big Insert string. 请使用SQL参数,而不是使用大的插入字符串。 This will avoid such errors like you describe. 这样可以避免出现您所描述的错误。

Also you don´t have to convert a Date parameter into a String when MySql is translating it back to a Date value anyways. 同样,当MySql将其转换回Date值时,您也不必将Date参数转换为String。 Just use the DateTimePicker.Value . 只需使用DateTimePicker.Value

 Dim SQLStatement As String = "INSERT INTO Pannes VALUES(@p1,@p2,@p3,@p4,@p5)"

(I suggest to replace the parameter names with meaningful ones). (我建议将参数名称替换为有意义的名称)。

And in SavePann make use of Using since it automatically disposes your connection and command objects. 并且在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM