从VB.Net mysql数据库日期保存日期和时间?

时间:2014-02-13 15:13:14

标签: mysql vb.net

我将客户端信息插入到VB.Net 2010的MySql数据库中的Clients表中。  正确插入所有值。 问题是当它插入值时,MySql Date列显示:“0000-00-00”。

正确输入后我需要做什么?

这是代码:

Dim dtb, dtr As DateTime
DateTimePicker1.Format = DateTimePickerFormat.Custom
        DateTimePicker1.CustomFormat = "yyyy-mm-dd"
        dtb = DateTimePicker1.MinDate
        txtdtb.AppendText(dtb)

        DateTimePicker2.Format = DateTimePickerFormat.Custom
        DateTimePicker2.CustomFormat = "yyyy-mm-dd"
        dtr = DateTimePicker1.MinDate

            ExecSQL("INSERT INTO clients VALUES('" & clid.Text & "','" & clname.Text & "','" & clgen.Text & "','" & dtb & "','" & claddress.Text & "','" & clemail.Text & "','" & clphone.Text & "','" & clocp.Text & "','" & dtr & "')")
            MsgBox("Record Saved", MsgBoxStyle.Information, "Save")

            FillList(frmMember.lvMember, GetData("SELECT * FROM clients"))

        End If

1 个答案:

答案 0 :(得分:1)

确定您的问题是您将dtr设置为最短日期时间:

 dtr = DateTimePicker1.MinDate

我认为您要使用.value属性as per the MSDN documentation here

然后在insert语句中使用此变量,这就是为什么所有日期都归零。

如果这不是用于问题目的的简化代码,请在网上搜索“SQL注入”并了解它是什么以及防止它的重要性。您应该至少清理您的输入,但最好使用数据库参数。

另一方面,.net的最小DateTime是0000-00-00,但MySQL中最小的“支持”日期是1000-01-01。 MySQL将允许发布但不受支持,因此无法推荐。有关详细信息,请参阅this page in the manualThe DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.