Как обновить ежемесячные / годовые отчеты
Ладно, я пытаюсь уже несколько дней, но на самом деле не знаю кода и ищу помощи.
Моя проблема:
Я создаю программу, которая будет собирать и обновлять данные о каждом членском пожертвовании / десятине. Участники жертвуют еженедельно, затем таблица базы данных имеет еженедельный, ежемесячный и годовой столбец. Теперь мне нужно знать, как обновлять ежемесячную и годовую колонку, сохраняя при этом еженедельный отчет. Потому что каждый раз, когда я добавляю новую запись, ежемесячный и годовой столбцы не обновляются.
Код до сих пор:
Private Sub btnAddOffertory_Click(sender As Object, e As EventArgs) Handles btnAddOffertory.Click cn.Open() Using cmd As New SqlClient.SqlCommand("INSERT INTO tblOffertory(ID, Name, Weekly, Date, Monthly, Annual)VALUES(@ID, @Name, @Weekly, @Date, @Monthly, @Annual)", cn) cmd.Parameters.Add(New SqlClient.SqlParameter("@ID", SqlDbType.Int)).Value = DGOList.SelectedRows(0).Cells(0).Value cmd.Parameters.Add(New SqlClient.SqlParameter("@Name", SqlDbType.VarChar, 50)).Value = DGOList.SelectedRows(0).Cells(1).Value cmd.Parameters.Add(New SqlClient.SqlParameter("@Weekly", SqlDbType.Int)).Value = txtOffertory.Text cmd.Parameters.Add(New SqlClient.SqlParameter("@Date", SqlDbType.Date)).Value = dtpOffertory.Text cmd.Parameters.Add(New SqlClient.SqlParameter("@Monthly", SqlDbType.Int)).Value = 0 cmd.Parameters.Add(New SqlClient.SqlParameter("@Annual", SqlDbType.BigInt)).Value = 0 i = cmd.ExecuteNonQuery End Using If (i > 0) Then Using cmd As New SqlClient.SqlCommand("UPDATE tblOffertory SET Monthly += @Monthly WHERE Date = '" & dtpOffertory.Text & "' AND ID = " & DGOList.SelectedRows(0).Cells(0).Value, cn) cmd.Parameters.Add(New SqlClient.SqlParameter("@Monthly", SqlDbType.Int)).Value = txtOffertory.Text End Using End If cn.Close() ShowORecord() OClear() End Sub
Что я уже пробовал:
Я попробовал это
Using cmd As New SqlClient.SqlCommand("UPDATE tblOffertory SET Monthly += @Monthly WHERE Date = '" & dtpOffertory.Text & "' AND ID = " & DGOList.SelectedRows(0).Cells(0).Value, cn) cmd.Parameters.Add(New SqlClient.SqlParameter("@Monthly", SqlDbType.Int)).Value = txtOffertory.Text End Using
NotPolitcallyCorrect
"ежемесячная и годовая колонка теперь обновляется", - не имеет смысла.
Ежемесячный столбец не обновляется в соответствии с вашим кодом, потому что вы никогда не выполняете команду. Годовая колонка не обновляется, потому что вы даже не пытаетесь ее обновить.
Или это может быть потому, что кто-то воспользовался вашим открытием атаки SQL-инъекции и уничтожил ваши обновления.
Paolo Tansengco
Я имел в виду "не обновляется"
Да, я еще не сделал годовой код обновления, потому что я еще не могу понять ежемесячный.