【问题标题】:passing date from vb.net to mysql将日期从 vb.net 传递到 mysql
【发布时间】:2019-03-11 17:12:21
【问题描述】:

我想将日期从我的 vb.net 传递到 mysql 。 在 mysql 中,我选择了数据类型作为日期。 请帮助我如何从日期时间选择器传递。 我在 vb.net 中的格式是 dd/mm/yyyy

【问题讨论】:

  • 如果你在调试模式下运行,它会准确地告诉你错误在哪一行
  • DateTime 格式不相关。使用DateTimePicker.Value
  • 可以使用参数化查询吗?我认为他们应该解决 .NET 中的格式问题。
  • mysql 的日期格式是“yyyy-MM-dd”,所以如果你格式化一个日期时间选择器你应该使用这个:format(datetimepicker1.value, "yyyy-MM-dd")。希望这会有所帮助。

标签: mysql vb.net date


【解决方案1】:

按照@jimi 在 cmets 中的建议进行操作

Private Sub TestMySql()
    Using cn As New MySqlConnection(My.Settings.dbusersConnection)
        Using cmd As New MySqlCommand("Update dbusers Set myDate = @Date Where myuser = @Name", cn)                
            cmd.Parameters.Add("@Date", MySqlDbType.Date).Value = DateTimePicker1.Value.Date
            cmd.Parameters.Add("@Name", MySqlDbType.VarChar, 50).Value = "joe"
            cn.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Using
End Sub

如果您将 DateTime 发送到数据库并且数据库数据类型是 Date,那么您如何格式化都没有关系。它不是字符串。这是一个日期。提供者和 ADO 将把它整理出来,让 MySql 很高兴。

【讨论】:

  • 投反对票可能是由问题本身的质量引起的。无论如何,请注意:MySqlDbType.DateMySqlDbType.DateTimetwo different types。使用MySqlDbType.Date,你应该通过DateTimePicker1.Value.Date。参数乱了。有人可能会说它(可能)无关紧要。另一个人可能不知道什么时候重要,什么时候不重要。所以,最好让它们一直井井有条(我的意见:)
  • @Jimi 感谢您的反馈。我用 DateTime 测试了该日期,它与我的 MySql 一起工作。我同意你的两个更正。 .Date 最好避免混淆。与顺序或参数相同。
【解决方案2】:

MySQL 使用以下格式:YYYY-MM-DD

您可以格式化您的日期以便 MySQL 喜欢它:

MyDateTimePicker.Value.ToString("yyyy-MM-dd")

Here you can find more "time and date" formatting informations.

玩得开心!

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 1970-01-01
    • 2013-11-21
    • 2019-03-17
    • 2012-09-14
    • 2017-04-22
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    相关资源
    最近更新 更多