繁体   English   中英

错误插入日期mysql vb.net

[英]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.

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