Как вставить значения дат в базу данных?
Привет, ребята, я пытался вставить некоторые данные относительно некоторых значений, на которых он включает значения даты. Но, похоже, ничего не получается.
Я все время получаю эту ошибку.
"Неверное значение даты: '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 по умолчанию. Я скоро наверстаю упущенное.