Мне нужно показать дату, которую я получил из базы данных 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