0

これがシナリオです。mysql に特定の日付を挿入する必要があります。この日付を挿入するたびに、0000-00-00 になります。

ユーザーが月の 1 日から 20 日の間に支払うたびに、wb_due-date 列は月を 1 ずつ増やします。

元。デフォルト値はwb_paid-date = 2013-10-15 and wb_due-date = 2013-10-20です。User1 は 2013 年 10 月 15 日に支払い済みで、ボタンをクリックした後、wb_due-date に保存された日付は 2013 年 11 月 20 日ではなく 0000-00-00 でした。

私のコードを見てください

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)
4

1 に答える 1

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)
于 2013-10-10T19:03:29.900 に答える