Member 13410460 Ответов: 1

Как обновить мои SQL-таблицы в зависимости от количества месяцев, которые я вставляю ?


Всем Привет,
Я хочу обновить свои таблицы в SQL на основе количества месяцев, которые я вставляю в text.box,
это мой код. :

<pre>  Dim startdate As DateTime = DateTimePickerFixCosts1.Value
 Dim enddate As DateTime = startdate.AddMonths(Convert.ToInt32(txtNumberofMonths.Text))
        
        Do While (startdate < enddate)
            Const query As String = "Update Test_Table set [Status] =@status, [Date] = @date "
            

            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("@date", startdate)
                    command.Parameters.AddWithValue("@status", ComboBox1.Text)
                    
                    conn.Open()
                    command.ExecuteNonQuery() ' 
                    startdate = startdate.AddMonths(1)
                    

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


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

Этот код прекрасно работает, если я использую :
Const query As String = "INSERT INTO Test_Table(Date,Description,Payment,Quantity,Price,Department,Status) VALUES (@date,@description,@payment,@quantity,@price,@department,@status)"


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

Любая помощь будет оценена по достоинству,
Лучший
Е

0x01AA

Вы когда-нибудь слышали о том, где в SQL-операторе есть ограничение на редактирование записей?

Sandeep Mewara

Не смотрите поле месяца в своей базе данных. Вы храните там дату. Если вы хотите настроить таргетинг на все даты месяца при обновлении, то сначала вам нужно выяснить эти даты, а затем обновить соответствующие им записи.

1 Ответов

Рейтинг:
9

Patrice T

Цитата:
но когда я хочу обновить его, он обновляет все записи, которые у меня есть в таблице, на основе значений в text.box.

Обновление работает так же, как и выбирать, по умолчанию это все записи, если вы хотите обновить только несколько записей, вы должны сказать, какие из них с помощью a где пункт.
Предложение SQL WHERE[^]


Member 13410460

Спасибо за хороший ответ, я попробовал were, и он дает мне такую ошибку: "неправильный синтаксис рядом с ключевым словом "where"."

Patrice T

ключевое слово-где.

Member 13410460

Я сделал это , и теперь он не показывает мне ничего, никаких изменений.
вот код : запрос строку const а = ("обновление Test_Table установите для параметра [Дата]=@дата,[статус]=@статус где [дата]=@Date и [статус]=@статус;")

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
Добавить фактический запрос