CaThey Joy Galias Ответов: 2

Как обновить 3 таблицы одним нажатием кнопки


пожалуйста, кто-нибудь мне поможет... я использую 3 таблицы с разными столбцами..и все это перечислено внутри кнопки сохранения...

он просто выполняется, но ничего не меняется, когда я нажимаю кнопку СОХРАНИТЬ, чтобы сохранить изменения, которые я сделал plsss помогите мне кто-нибудь ..база на моем коде есть ли у меня недостающие коды, чтобы исправить это?
я использую базу данных MYSQL и VB

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

Private Sub PictureBox2_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox2.Click
     Try
         If Label25.Text = "UPDATE" Then
             PictureBox7.Enabled = False
             Label24.Enabled = False
             enabledID()
             cboSSS.Checked = True
             cboBIR.Checked = True
             cboPag.Checked = True
             cbophil.Checked = True
             Label25.Text = "SAVE"

         ElseIf Label25.Text = "SAVE" Then
             conn.Open()
             query = New MySqlCommand("UPDATE info_info SET employee_count1=@employee_count1,employee_ID=@employee_ID,month=@month,days=@days,year=@year,Name=@Name,position=@position,regular=@regular,totalday=@totalday,month1=@month1,day1=@day1,month2=@month2,day2=@day2,percent=@percent,amount=@amount,percent1=@percent1,amount1=@amount1,percent2=@percent2,amount2=@amount2,percent3=@percent3,amount3=@amount3,overtime=@overtime,holiday=@holiday,special=@special,total=@total,deduction=@deduction+1,date1=@date1,cash_advance=@cash_advance,net=@net,late=@late,under_time=@under_time,absent=@absent where employee_count1=@employee_count1", conn)
             query.Parameters.AddWithValue("@employee_count1", gen)
             query.Parameters.AddWithValue("@employee_ID", txtID.Text)
             query.Parameters.AddWithValue("@month", txtmonth.Text)
             query.Parameters.AddWithValue("@days", txtdays.Text)
             query.Parameters.AddWithValue("@year", txtyear.Text)
             query.Parameters.AddWithValue("@Name", txtlastname.Text)
             query.Parameters.AddWithValue("@position", txtposition.Text)
             query.Parameters.AddWithValue("@regular", txtregular.Text)
             query.Parameters.AddWithValue("@totalday", txtotot.Text)
             query.Parameters.AddWithValue("@month1", txtfrom.Text)
             query.Parameters.AddWithValue("@day1", txtfrom1.Text)
             query.Parameters.AddWithValue("@month2", txtto.Text)
             query.Parameters.AddWithValue("@day2", txtto1.Text)
             query.Parameters.AddWithValue("@percent", txtcent.Text)
             query.Parameters.AddWithValue("@amount", txttot.Text)
             query.Parameters.AddWithValue("@percent1", txtcent1.Text)
             query.Parameters.AddWithValue("@amount1", txttot1.Text)
             query.Parameters.AddWithValue("@percent2", txtcent2.Text)
             query.Parameters.AddWithValue("@amount2", txttot2.Text)
             query.Parameters.AddWithValue("@percent3", txtcent3.Text)
             query.Parameters.AddWithValue("@amount3", txttot33.Text)
             query.Parameters.AddWithValue("@overtime", txtovt.Text)
             query.Parameters.AddWithValue("@holiday", txtper.Text)
             query.Parameters.AddWithValue("@special", txtsped.Text)
             query.Parameters.AddWithValue("@total", txtnon.Text)
             query.Parameters.AddWithValue("@deduction", txtamount.Text)
             query.Parameters.AddWithValue("@date1", txtday2.Text)
             query.Parameters.AddWithValue("@cash_advance", txtcash.Text)
             query.Parameters.AddWithValue("@net", txtnet.Text)
             query.Parameters.AddWithValue("@late", txtabsent.Text)
             query.Parameters.AddWithValue("@under_time", txtunder.Text)
             query.Parameters.AddWithValue("@absent", txtlate.Text)
             query.ExecuteNonQuery()
             conn.Close()


             conn.Open()
             query2 = New MySqlCommand("UPDATE deduction_table SET employee_count3=@employee_count3,employee_ID=@employee_ID,month=@month,days=@days,year=@year,Name=@Name,SSS=@SSS,BIR=@BIR,Pag_ibig=@Pag_ibig,Philhealth=@Philhealth where employee_count3=@employee_count3", conn)
             query2.Parameters.AddWithValue("@employee_count3", gen)
             query2.Parameters.AddWithValue("@employee_ID", txtID.Text)
             query2.Parameters.AddWithValue("@month", txtmonth.Text)
             query2.Parameters.AddWithValue("@days", txtdays.Text)
             query2.Parameters.AddWithValue("@year", txtyear.Text)
             query2.Parameters.AddWithValue("@Name", txtlastname.Text)
             query2.Parameters.AddWithValue("@SSS", txttot.Text)
             query2.Parameters.AddWithValue("@BIR", txttot1.Text)
             query2.Parameters.AddWithValue("@Pag_ibig", txttot2.Text)
             query2.Parameters.AddWithValue("@Philhealth", txttot33.Text)
             query2.ExecuteNonQuery()

             conn.Close()

             conn.Open()
             query3 = New MySqlCommand("UPDATE netpay_table SET employee_count4=@employee_count4,employee_ID=@employee_ID,month=@month,days=@days,year=@year,Name=@Name,net=@net  where employee_count4=@employee_count4", conn)
             query3.Parameters.AddWithValue("@employee_count4", gen)
             query3.Parameters.AddWithValue("@employee_ID", txtID.Text)
             query3.Parameters.AddWithValue("@month", txtmonth.Text)
             query3.Parameters.AddWithValue("@days", txtdays.Text)
             query3.Parameters.AddWithValue("@year", txtyear.Text)
             query3.Parameters.AddWithValue("@Name", txtlastname.Text)
             query3.Parameters.AddWithValue("@net", txtnet.Text)
             query3.ExecuteNonQuery()

             conn.Close()
             disabledID()
             Label25.Text = "UPDATE"
             MsgBox("successfully save")
             generalID()
             Label24.Enabled = True
             PictureBox7.Enabled = True

         End If
     Catch ex As Exception
         MsgBox(ex.ToString)
     Finally
         conn.Close()

     End Try
 End Sub

CaThey Joy Galias

Пожалуйста, кто-нибудь поделитесь своей идеей

Christiaan van Bergen

Значит, никаких исключений не делается? Хорошо, вы работаете с инструкциями обновления, если никакие записи не обновляются, значит, обновлять было нечего. Используйте результат запроса.ExecuteNonQuery (), чтобы определить, сколько строк было обновлено.

CaThey Joy Galias

Как же так? Извините я не знаю как вы можете привести пример кода

Christiaan van Bergen

Тупым способом было бы показать затронутые строки в MessageBox. Изменить все свои метод executenonquery() отчетности в нечто подобное: с помощью MsgBox("запроса query1 строк:" + запроса query1.Метод executenonquery())
Или поместите результат ExecuteNonQuery() в переменную и наблюдайте за ним во время отладки.

CaThey Joy Galias

Тай Тянь я уже решаю эту проблему большое тебе спасибо за твою идею.

Christiaan van Bergen

Пожалуйста

2 Ответов

Рейтинг:
1

Sissy Ram

Используйте хранимые процедуры Sql, чтобы сделать больше, чем вы ожидали.

com.Parameters.Clear()
com.CommandText = "USP_PROCEDURE_NAME"
com.Parameters.Add("@parametertoppass", Datatype).Value = Valuetosent
'list of parameter you want to sent to procedure
com.CommandType = CommandType.StoredProcedure
com.Connection = cn
com.executenonquery()


через вышеизложенное вы можете отправить данные один раз в базу данных и вы можете сохранить или обновить несколько таблиц

вот учебник для хранимой процедуры[^]
синтаксис для создания хранимой процедуры[^]

Преимущество хранимой процедуры вы можете сократить время, необходимое для подключения к вашей базе данных


Рейтинг:
0

Christiaan van Bergen

Значит, никаких исключений не делается? Хорошо, вы работаете с инструкциями обновления, если никакие записи не обновляются, значит, обновлять было нечего. Используйте результат от Метод executenonquery

query.ExecuteNonQuery()
чтобы определить, сколько строк было обновлено.
Тупым способом было бы показать затронутые строки в MessageBox. Измените все ваши операторы ExecuteNonQuery() на что-то вроде:
MsgBox("query1 rows: " + query1.ExecuteNonQuery())
Или еще лучше, поместите результат ExecuteNonQuery() в переменную и наблюдайте за ним во время отладки.