Member 13410460 Ответов: 1

Как добавлять даты каждые 3 месяца в течение года VB.NET


Всем Привет,

У меня есть код, в который я каждый месяц вставляю значения vb.net, что мне сейчас нужно, так это вставлять определенные значения каждые 3 месяца. У меня есть текстовое поле, которое я могу решить, сколько раз или сколько месяцев я хочу вставить в базу данных.
Это код, который я вставляю каждый месяц, сколько раз я хочу :


Dim startdate As DateTime = DateTimePickerFixCosts1.Value
           Dim enddate As DateTime = startdate.AddMonths(Convert.ToInt32(txtNumberofMonths.Text))
           Dim amount As Decimal = Decimal.Parse(txtPriceFixCosts.Text)
           Const query As String = "INSERT INTO Test_Table(Date,Description,Payment,Quantity,Price,Department,Status,Store) VALUES (@date,@description,@payment,@quantity,@price,@department,@status,@Store)"
           Do While (startdate > enddate)

               Using conn As SqlConnection = New SqlConnection("Data Source=#######\SQLEXPRESS;Initial Catalog=Expenses;Trusted_Connection=yes;")
                   Using command As SqlCommand = New SqlCommand(query, conn)

                       command.Parameters.AddWithValue("@description", TxtItemDescFixCosts.Text)
                       command.Parameters.AddWithValue("@payment", TxtPaymentFixCosts.Text)
                       command.Parameters.AddWithValue("@price", amount)
                       command.Parameters.AddWithValue("@date", startdate)
                       command.Parameters.AddWithValue("@status", ComboBox1.Text)
                       command.Parameters.AddWithValue("@quantity", TextBoxIDd.Text)
                       command.Parameters.AddWithValue("@department", TxtFixCosts.Text)
                       command.Parameters.AddWithValue("@Store", TxtStore.Text)

                       conn.Open()
                       command.ExecuteNonQuery() ' NB: Don't use ExecuteReader when the query doesn't return anything!
                       startdate = startdate.AddMonths(1)
                   End Using

               End Using
           Loop
           MsgBox("Your Data has been Inserted")


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

Я пытался изменить добавить месяцев до
 другой номер, но он ничего не запишет.

If CategoryBox.SelectedItem = "Monthly" Then
        Dim startdate As DateTime = DateTimePickerFixCosts1.Value
        Dim enddate As DateTime = startdate.AddMonths(Convert.ToInt32(txtNumberofMonths.Text))
        Dim amount As Decimal = Decimal.Parse(txtPriceFixCosts.Text)
        Const query As String = "INSERT INTO Test_Table(Date,Description,Payment,Quantity,Price,Department,Status,Store) VALUES (@date,@description,@payment,@quantity,@price,@department,@status,@Store)"
        Do While (startdate > enddate)

            Using conn As SqlConnection = New SqlConnection("Data Source=#######\SQLEXPRESS;Initial Catalog=Expenses;Trusted_Connection=yes;")
                Using command As SqlCommand = New SqlCommand(query, conn)

                    command.Parameters.AddWithValue("@description", TxtItemDescFixCosts.Text)
                    command.Parameters.AddWithValue("@payment", TxtPaymentFixCosts.Text)
                    command.Parameters.AddWithValue("@price", amount)
                    command.Parameters.AddWithValue("@date", startdate)
                    command.Parameters.AddWithValue("@status", ComboBox1.Text)
                    command.Parameters.AddWithValue("@quantity", TextBoxIDd.Text)
                    command.Parameters.AddWithValue("@department", TxtFixCosts.Text)
                    command.Parameters.AddWithValue("@Store", TxtStore.Text)

                    conn.Open()
                    command.ExecuteNonQuery() ' NB: Don't use ExecuteReader when the query doesn't return anything!
                    startdate = startdate.AddMonths(3)
                End Using

            End Using
        Loop
        MsgBox("Your Data has been Inserted")


    End If

Поэтому мне нужно вставлять эту определенную информацию каждые 3 месяца в течение определенного периода времени, но это не работает так.

Любая помощь очень ценится.

Благодарно

Maciej Los

Пожалуйста, не надо репост!

Member 13410460

Это основано на ежеквартальной, ежегодной, полугодовой вставке, основанной на количестве повторений вставки. Это не одно и то же.
Спасибо

1 Ответов

Рейтинг:
7

Richard MacCutchan

Do While (startdate > enddate)

Не хочешь ли ты сказать
Do While (startdate < enddate) // while startdate is less than enddate?


Member 13410460

Да, второй прав, это моя ошибка. Но все равно, он не будет записывать, сколько раз я хочу.
Спасибо за ваш ответ.
Рекорды

Richard MacCutchan

Ну, вам нужно точно объяснить, какая часть кода терпит неудачу и почему. Глядя на то, что у вас есть выше, я не вижу никакой другой проблемы.

Member 13410460

Спасибо за ваш ответ и помощь, я все исправил.