Я не уверен, почему VB делает все такой болью. У меня есть поля, который хранит дату и время в формате, требуемом сохранить в базе данных MySQL
Dim AppDate As String = String.Empty
If Not String.IsNullOrEmpty(Me.AppDate.Text.Trim) Then
AppDate = Format(CDate(Me.AppDate.Text), "yyyy-MM-dd h:mm:ss")
Else
//Need to assign a null value to AppDate
End If
Теперь я должен присвоить AppDate Пустому указателю как DBNull, но я не могу сделать это непосредственно. Если я изменяю AppDate до настоящего времени затем, я не получаю требуемый формат.
Любая справка ценится.
Заранее спасибо.
AppDate = Ничего не должно работать, вы также можете использовать DateTime.MinValue и обновить свою бизнес-логику, чтобы обрабатывать ее соответствующим образом.
дата и время в формате, необходимом для хранения в базе данных MySQL
Если вы создаете строку даты и времени для сохранения в базе данных, вы делаете все неправильно.
Используя MySql Connector/Net, вы должны строить свой запрос следующим образом:
Dim sql As String = "UPDATE `MyTable` SET `MyField` = @MyField WHERE `ID` = @MyID"
Using cn As New MySqlconnection("..your connection string here.."), _
cmd As New SqlCommand(sql, cn)
cmd.Parameters.Add("@MyField", MySqlDbType.DateTime).Value = MyDateTimeVar ''# NO FORMATTING NEEDED!
cmd.Parameters.Add("@MyID", MySqlDbType.Int).Value = MyIDIntegerVar
cn.Open()
cmd.ExecuteNonQuery()
End Using
Строковое значение, возвращаемое методом DbNull.ToString()
, является пустой строкой (""), что может означать, что строковое представление DbNull является пустой строкой.