Строка не была распознана как действительный DateTime Datetimepicker vb.net - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно показать дату, которую я получил из базы данных mysql в указателе даты и времени. Я получаю эту ошибку при запуске этого кода.

Система. FormatException: Строка не была распознана как действительная DateTime .
в System.DateTimeParse.ParseExact (String s, String format, DateTimeFormatInfo dtfi, стиль DateTimeStyIes)
в системе. DateTime.ParseExact (String s, String format, IFormatProvider провайдер)

примечание: когда читатель mysql читает значение rdate, это будет 2/2/2019 12:00:00 AM исправленное значение составляет 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
...