首页 > 解决方案 > 字符串未被识别为有效的 DateTime Datetimepicker vb.net

问题描述

我需要在 datetimepicker 中显示从 mysql 数据库中获取的日期。运行此代码时出现此错误。

系统。FormatException: String 未被识别为有效的 DateTime
在 System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyIes style)
在 System. DateTime.ParseExact(String s, String 格式, IFormatProvider 提供者)

注意:当 mysql 阅读器读取 rdate 值为 2/13/2019 12:00:00 AM rdatecorrected 值为 2/13/2019

我看到了一些类似问题的答案,它们使用一个 M 而不是 MM 和一个 d 而不是 dd 来匹配作为一个数字的月份和日期值的格式。但是我全年每天都有这些记录,所以我需要一种方法来完成这项工作,即使它是像 9 这样的单值月或像 11 这样的二值月

我仍然是一个初学者程序员,所以如果你能用编辑过的代码向我展示解决方案,我将不胜感激。

imports: Imports System.IO
Imports System
Imports MySql.Data.MySqlClient
Imports System.Globalization

    If System.IO.File.Exists("D:\DBSystem\Connection\connconfig.dbs") = True Then

        Dim realstuno As Integer
        realstuno = ESD_Realstudentno.Text

        Dim strFile As String = "D:\DBSystem\Connection\connconfig.dbs"
        Dim sr As New IO.StreamReader(strFile)
        Dim ip As String
        Dim port As String
        Dim userid As String
        Dim password As String
        Dim database As String

        'reading
        ip = sr.ReadLine()
        port = sr.ReadLine()
        userid = sr.ReadLine()
        password = sr.ReadLine()
        database = sr.ReadLine()
        sr.Close()


        'default connection code
        Dim serverstring As String = "server=" & ip & ";port=" & port & ";database=" & database & ";user ID=" & userid & ";password=" & password & ";OldGuids=true"
        Dim sqlconnection As MySqlConnection = New MySqlConnection
        sqlconnection.ConnectionString = serverstring
        Dim Reader As MySqlDataReader
        Dim Rdate As String
        Dim SDA As New MySqlDataAdapter
        Dim DbDataSet As New DataTable
        Dim bSource As New BindingSource
        Dim rdatecorrected As String

        'custom date format
        'rdate
        ESD_Rdate.Format = DateTimePickerFormat.Custom
        ESD_Rdate.CustomFormat = "MM/dd/yyyy"


        Try
            If sqlconnection.State = ConnectionState.Closed Then
                sqlconnection.Open()

                'search
                Dim sqlstatement As String = "Select Registereddate FROM `SDS_Data` WHERE `StudentNo` ='" & realstuno & "'"
                Dim Command = New MySqlCommand(sqlstatement, sqlconnection)
                Reader = Command.ExecuteReader
                If Reader.HasRows() Then
                    While Reader.Read


                        'rdate
                        Rdate = Reader.GetString("Registereddate")
                        rdatecorrected = Rdate.Remove(Rdate.Length - 12, 12)
                        Dim dt As DateTime = DateTime.ParseExact("" & rdatecorrected & "", "MM/dd/yyyy", CultureInfo.InvariantCulture)
                        ESD_Rdate.Value = dt

                    End While
                Else
                    MessageBox.Show("No records found!", "Error")
                End If
            Else
                sqlconnection.Close()
                MsgBox("Connection Error!", "Error")

            End If

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

    Else
        MessageBox.Show("Do not have any previous database configurations!", "Error",
           MessageBoxButtons.OK)
    End If

标签: vb.netdatetimepickerstring-to-datetime

解决方案


推荐阅读