2013-10-10 4 views
0

Хорошо, вот сценарий, мне нужно вставить определенную дату в mysql. Каждый раз, когда я вставляю эту дату, я получаю 0000-00-00.Вставьте определенную дату в Mysql, используя vb.net

Каждый раз, когда пользователь платит между 1-м и 20-го числа месяца, то столбец wb_due-дата будет увеличиваться месяц на 1

Ex. У меня есть значение по умолчанию wb_paid-date = 2013-10-15 and wb_due-date = 2013-10-20. Теперь User1 Платный на 2013-10-15 и после того, как я нажал кнопку, дата сохраняется на wb_due-дату было 0000-00-00 вместо 2013-11-20

Посмотрите на мой код

Function iterate(ByVal d As Date) As String 
     Dim m As Integer = d.Month 
     If d.Month >= 1 And d.Month <= 11 Then 
      m += 1 
     ElseIf d.Month = 12 Then 
      m = 1 
     End If 
     Return m 
    End Function 

cmd = New MySqlCommand("INSERT INTO tbl_billing(wb_paid-date, wb_due-date) 
VALUES(CURDATE(), iterate(Now.Date) , con) 
+1

Ваш SQL не является действительным. Вы не можете вызывать функции VB из SQL, отправленного на сервер MySQL. – Dai

ответ

0

во-первых, давайте исправим вашу функцию:

Function iterate(ByVal d As DateTime) As String 
    Return d.AddMonths(1).ToString("yyyy-MM-dd") 
End Function 

Кроме того, если вы помещаете дату строку в команду, вы почти наверняка делаете что-то неправильно. Давайте просто сделать это:

Function iterate(ByVal d As DateTime) As DateTime 
    Return d.AddMonths(1) 
End Function 

Тогда мы исправим ваш Sql Команда:

cmd = New MySqlCommand("INSERT INTO tbl_billing(wb_paid-date, wb_due-date) VALUES(CURDATE(), ? " , con) 
cmd.Parameters.Add("?", SqlDbType.DateTime).Value = iterate(Today) 
+0

У меня ошибка: «Входная строка не в формате», я последовал за вашим ответом – eaponz

Смежные вопросы