Scribling Doodle Ответов: 1

Как вставить значения дат в базу данных?


Привет, ребята, я пытался вставить некоторые данные относительно некоторых значений, на которых он включает значения даты. Но, похоже, ничего не получается.

Я все время получаю эту ошибку.

"Неверное значение даты: '17/05/2017' для столбца 'данные' в строке 1"

Вот структура данных моей таблицы.

/*Column Information*/
----------------------

Field         Type         Collation        Null    Key     Default  Extra           Privileges                       Comment  
------------  -----------  ---------------  ------  ------  -------  --------------  -------------------------------  ---------
ID_ROOTCAUSE  int(10)      (NULL)           NO      PRI     (NULL)   auto_increment  select,insert,update,references           
MOTIVO        varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
EMITIDO       varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
MOD_EQUIPA    varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
LOCAL         varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
DATA          date         (NULL)           NO              (NULL)                   select,insert,update,references           
MEMB_EQUIPA   varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
DISTRIBUICAO  varchar(50)  utf8_general_ci  NO              (NULL)                   select,insert,update,references           
N_REVISAO     int(15)      (NULL)           NO              (NULL)                   select,insert,update,references           
DATA_REVISAO  date         (NULL)           NO              (NULL)                   select,insert,update,references           
CLIENTE       int(11)      (NULL)           YES             (NULL)                   select,insert,update,references           


Что я уже пробовал:

Я использовал этот код для большей части моих функций вставки, и в некоторых случаях он хорошо работает. Этот человек причиняет мне боль в а**.

Using SQLConnection As New MySqlConnection("Server=192.168.50.57;Port=3306;Database=zestagio;Uid=tiago.j.turella;Pwd=123abc.;")
            Using cmd1 As New MySqlCommand()
                With cmd1
                    .CommandText = "INSERT INTO d8_rootcause(MOTIVO, EMITIDO, MOD_EQUIPA, LOCAL, DATA, MEMB_EQUIPA, DISTRIBUICAO, N_REVISAO, DATA_REVISAO, CLIENTE) VALUES(@D1,@D2,@D3,@D4,@D5,@D6,@D7,@D8,@D9,@D10)"
                    .Connection = SQLConnection
                    .CommandType = CommandType.Text
                    .Parameters.AddWithValue("@d1", txtMotivo.Text)
                    .Parameters.AddWithValue("@d2", txtEmitido.Text)
                    .Parameters.AddWithValue("@d3", txtModerador.Text)
                    .Parameters.AddWithValue("@d4", txtLocal.Text)
                    .Parameters.AddWithValue("@d5", dtpData.Value.ToShortDateString())
                    .Parameters.AddWithValue("@d6", txtMembros.Text)
                    .Parameters.AddWithValue("@d7", txtDistribuicao.Text)
                    .Parameters.AddWithValue("@d8", txtRevisao.Text)
                    .Parameters.AddWithValue("@d9", dtpDataRevisao.Value.ToShortDateString())
                    .Parameters.AddWithValue("@d10", _cln)
                End With
                Try
                    SQLConnection.Open()
                    cmd1.ExecuteNonQuery()
                    _alerta = 1
                    Hide()
                    frm8D.Show()
                Catch ex As MySqlException
                    MsgBox(ex.Message.ToString)
                    _alerta = 0
                Finally

                    SQLConnection.Close()
                End Try
            End Using

ZurdoDev

Попробуйте вставить в формат 2017-05-17.

Scribling Doodle

Проблема заключается в том, что значение, ссылающееся на dtpData.Value, выбирается в короткой строке date. Если это так, то он дает такие значения даты (ДД-ММ-гггг)

ZurdoDev

Затем измените его, когда он будет отправлен в MySql. Ошибка действительно очевидна. Ваша БД не поддерживает этот формат даты.

Scribling Doodle

Я попробую использовать .ToString ("yyyy-MM-dd") для преобразования даты в формат mysql по умолчанию. Я скоро наверстаю упущенное.

1 Ответов

Рейтинг:
4

Scribling Doodle

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

Richard MacCutchan

Вы действительно читали эту страницу документации?