2016-09-21 87 views
0

我有5個標籤頁,每個頁面有Datagridview。每個選項卡都代表我數據庫中的一個表。問題是,更新時只有第一個表正在更新。這裏是我的代碼:更新記錄時未更改行

Private Sub update_Click(sender As Object, e As EventArgs) Handles updateBtn.Click 

    '/// UPDATING TABLE - employee 

    Try 
     Using conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employee.mdb;") 
      conn.Open() 
      Dim command As New OleDbCommand("UPDATE employee SET [Last_Name] = @lname, [First_Name]= @fname, MI = @mi, Bday = @bday, Age = @age, [Nationality] = @natio, [Contact_Number] = @contact, Sex = @gender, Address = @address, Department = @department, [Position] = @position, TIN = @tin, SSS = @sss, Pagibig = @pagibig, PhilHealth = @phh, Termi_Resi = @termiresi, [Date_hired] = @datehired, [Rate_Month] = @rm, [Date_End] = @dateTermiResi, Status = @status, [Father_Name] = @father, [Mother_Name] = @mother, Civil = @civil, Spouse = @spouse, [Number_of_Children] = @numberchild, Child1 = @child1, Child2 = @child2, Child3 = @child3, Child4 = @child4, Child5 = @child5, Child6 = @child6, Child7 = @child7, Child8 = @child8, Child9 = @child9 WHERE [EmployID] = @numberemp", conn) 
      With command.Parameters 
       .AddWithValue("@lname", lname.Text) 
       .AddWithValue("@fname", fname.Text) 
       .AddWithValue("@mi", mi.Text) 
       .AddWithValue("@bday", bday.Value) 
       .AddWithValue("@age", age.Text) 
       .AddWithValue("@natio", natio.Text) 
       .AddWithValue("@contact", contact.Text) 
       .AddWithValue("@gender", gender.Text) 
       .AddWithValue("@address", address.Text) 
       .AddWithValue("@department", department.Text) 
       .AddWithValue("@position", position.Text) 
       .AddWithValue("@tim", tin.Text) 
       .AddWithValue("@sss", sss.Text) 
       .AddWithValue("@pagibig", pagibig.Text) 
       .AddWithValue("@phh", phh.Text) 
       .AddWithValue("@termiresi", termiresi.Text) 
       .AddWithValue("@datehired", datehired.Value) 
       .AddWithValue("@rm", rm.Text) 
       .AddWithValue("@dateTermiResi", dateTermiResi.Value) 
       .AddWithValue("@status", status.Text) 
       .AddWithValue("@father", father.Text) 
       .AddWithValue("@mother", mother.Text) 
       .AddWithValue("@civil", civil.Text) 
       .AddWithValue("@spouse", spouse.Text) 
       .AddWithValue("@numberchild", numberchild.Text) 
       .AddWithValue("@child1", child1.Text) 
       .AddWithValue("@child2", child2.Text) 
       .AddWithValue("@child3", child3.Text) 
       .AddWithValue("@child4", child4.Text) 
       .AddWithValue("@child5", child5.Text) 
       .AddWithValue("@child6", child6.Text) 
       .AddWithValue("@child7", child7.Text) 
       .AddWithValue("@child8", child8.Text) 
       .AddWithValue("@child9", child9.Text) 
       .AddWithValue("@numberemp", numberemp.Text) 
      End With 
      command.ExecuteNonQuery() 
      MessageBox.Show("Employee's Informations Successfuly Updated!", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      command.Dispose() 
      conn.Close() 
      clearall() 


     End Using 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "ERROR12", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

    '/// UPDATING TABLE - education 

    Try 
     Using conn2 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employee.mdb;") 
      conn2.Open() 
      Dim command2 As New OleDbCommand("UPDATE education SET Level_Educ = @hlevelEduc, Degree = @degree, Post_Degree = @postdegree, Elem = @elem, Year_one = @year1, Highschool = @highschool, Year_two = @year2, College = @college, Year_three = @year3, Training_School = @trainingS, Year_four = @year4, Other_Educ = @otherEduc WHERE [EmployID] = @numberemp1", conn2) 
      numberemp1.Text = numberemp.Text 
      With command2.Parameters 
       .AddWithValue("@hlevelEduc", hlevelEduc.Text) 
       .AddWithValue("@elem", elem.Text) 
       .AddWithValue("@year1", year1.Text) 
       .AddWithValue("@highschool", highschool.Text) 
       .AddWithValue("@year2", year2.Text) 
       .AddWithValue("@college", college.Text) 
       .AddWithValue("@year3", year3.Text) 
       .AddWithValue("@degree", degree.Text) 
       .AddWithValue("@postdegree", postdegree.Text) 
       .AddWithValue("@trainingS", trainingS.Text) 
       .AddWithValue("@year4", year4.Text) 
       .AddWithValue("@otherEduc", otherEduc.Text) 
       .AddWithValue("@numberemp1", numberemp1.Text) 
      End With 
      Dim rows = command2.ExecuteNonQuery() 
      If rows = 0 Then 
       MessageBox.Show("No rows modified") 
      Else 
       MessageBox.Show("Employee's Informations Successfuly Updated!", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      End If 
      command2.Dispose() 
      conn2.Close() 
     End Using 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "ERROR12", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

    '/// UPDATING TABLE - employment 

    Try 

     Using conn3 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employee.mdb;") 
      conn3.Open() 
      Dim command3 As New OleDbCommand("UPDATE employment SET Cname1 = @cname1, Posi1 = @posi1, Dept1 = @dept1, Tm1 = @tm1, Reason1 = @reason1, Cname2 = @cname2, Posi2 = @posi2, Dept2 = @dept2, Tm2 = @tm2, Reason2 = @reason2, Cname3 = @cname3, Posi3 = @posi3, Dept3 = @dept3, Tm3 = @tm3, Reason3 = @reason3, Cname4 = @cname4, Posi4 = @posi4, Dept4 = @dept4, Tm4 = @tm4, Reason4 = @reason4, Cname5 = @cname5, Posi5 = @posi5, Dept5 = @dept5, Tm5 = @tm5, Reason5 = @reason5, Cname6 = @cname6, Posi6 = @posi6, Dept6 = @dept6, Tm6 = @tm6, Reason6 = @reason6 WHERE [EmployID] = @numberemp2", conn3) 
      numberemp2.Text = numberemp.Text 
      With command3.Parameters 
       .AddWithValue("@cname1", cname1.Text) 
       .AddWithValue("@posi1", posi1.Text) 
       .AddWithValue("@dept1", dept1.Text) 
       .AddWithValue("@tm1", tm1.Text) 
       .AddWithValue("@reason1", reason1.Text) 
       .AddWithValue("@cname2", cname2.Text) 
       .AddWithValue("@posi2", posi2.Text) 
       .AddWithValue("@dept2", dept2.Text) 
       .AddWithValue("@tm2", tm2.Text) 
       .AddWithValue("@reason2", reason2.Text) 
       .AddWithValue("@cname3", cname3.Text) 
       .AddWithValue("@posi3", posi3.Text) 
       .AddWithValue("@dept3", dept3.Text) 
       .AddWithValue("@tm3", tm3.Text) 
       .AddWithValue("@reason3", reason3.Text) 
       .AddWithValue("@cname4", cname4.Text) 
       .AddWithValue("@posi4", posi4.Text) 
       .AddWithValue("@dept4", dept4.Text) 
       .AddWithValue("@tm4", tm4.Text) 
       .AddWithValue("@reason4", reason4.Text) 
       .AddWithValue("@cname5", cname5.Text) 
       .AddWithValue("@posi5", posi5.Text) 
       .AddWithValue("@dept5", dept5.Text) 
       .AddWithValue("@tm5", tm5.Text) 
       .AddWithValue("@reason5", reason5.Text) 
       .AddWithValue("@cname6", cname6.Text) 
       .AddWithValue("@posi6", posi6.Text) 
       .AddWithValue("@dept6", dept6.Text) 
       .AddWithValue("@tm6", tm6.Text) 
       .AddWithValue("@reason6", reason6.Text) 
       .AddWithValue("@numberemp2", numberemp2.Text) 
      End With 
      Dim rows = command3.ExecuteNonQuery() 
      If rows = 0 Then 
       MessageBox.Show("No rows modified") 
      Else 
       MessageBox.Show("Employee's Informations Successfuly Updated!", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      End If 
      command3.Dispose() 
      conn3.Close() 
      clearall() 
     End Using 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "ERROR12", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

    '/// UPDATING TABLE - disciplinary 

    Try 

     Using conn4 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employee.mdb;") 
      conn4.Open() 
      Dim command4 As New OleDbCommand("UPDATE disciplinary SET Offense1 = @o1, Action1 = @ao1, Dateoff1 = @do1, Offense2 = @o2, Action2 = @ao2, Dateoff2 = @do2, Offense3 = @o3, Action3 = @ao3, Dateoff3 = @do3, Offense4 = @o4, Action4 = @ao4, Dateoff4 = @do4, Offense5 = @o5, Action5 = @ao5, Dateoff5 = @do5, Offense6 = @o6, Action6 = @ao6, Dateoff6 = @do6, Offense7 = @o7, Action7 = @ao7, Dateoff7 = @do7, Offense8 = @o8, Action8 = @ao8, Dateoff8 = @do8, Offense9 = @o9, Action9 = @ao9, Dateoff9 = @do9, Offense10 = @10, Action10 = @ao10, Dateoff10 = @do10 WHERE [EmployID] = @numberemp3 ", conn4) 
      numberemp3.Text = numberemp.Text 
      With command4.Parameters 
       .AddWithValue("@o1", o1.Text) 
       .AddWithValue("@ao1", ao1.Text) 
       .AddWithValue("@do1", do1.Value) 
       .AddWithValue("@o2", o2.Text) 
       .AddWithValue("@ao2", ao2.Text) 
       .AddWithValue("@do2", do2.Value) 
       .AddWithValue("@o3", o3.Text) 
       .AddWithValue("ao3", ao3.Text) 
       .AddWithValue("@do3", do3.Value) 
       .AddWithValue("@o4", o4.Text) 
       .AddWithValue("@ao4", ao4.Text) 
       .AddWithValue("@do4", do4.Value) 
       .AddWithValue("@o5", o5.Text) 
       .AddWithValue("@ao5", ao5.Text) 
       .AddWithValue("@do5", do5.Value) 
       .AddWithValue("@o6", o6.Text) 
       .AddWithValue("@ao6", ao6.Text) 
       .AddWithValue("@do6", do6.Value) 
       .AddWithValue("@o7", o7.Text) 
       .AddWithValue("@ao7", ao7.Text) 
       .AddWithValue("@do7", do7.Value) 
       .AddWithValue("@o8", o8.Text) 
       .AddWithValue("@ao8", ao8.Text) 
       .AddWithValue("@do8", do8.Value) 
       .AddWithValue("@o9", o9.Text) 
       .AddWithValue("@ao9", ao9.Text) 
       .AddWithValue("@do9", do9.Value) 
       .AddWithValue("@o10", o10.Text) 
       .AddWithValue("@ao10", ao10.Text) 
       .AddWithValue("@do10", do10.Value) 
       .AddWithValue("@numberemp3", numberemp3.Text) 
      End With 
      Dim rows = command4.ExecuteNonQuery() 
      If rows = 0 Then 
       MessageBox.Show("No rows modified") 
      Else 
       MessageBox.Show("Employee's Informations Successfuly Updated!", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      End If 
      conn4.Close() 
      clearall() 

     End Using 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "ERROR12", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 

    '/// UPDATING TABLE - trainings 


    Try 

     Using conn5 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employee.mdb;") 
      conn5.Open() 
      Dim command5 As New OleDbCommand("UPDATE trainings SET ts1 = @ts1, dts1 = @dts1, ts2 = @ts2, dts2 = @dts2, ts3 = @ts3, dts3 = @dts3, ts4 = @ts4, dts4 = @dts4, ts5 = @ts5, dts5 = @dts5, ts6 = @ts6, dts6 = @dts6, ts7 = @ts7, dts7 = @dts7, ts8 = @ts8, dts8 = @dts8, ts9 = @ts9, dts9 = @dts9, ts10 = @ts10, dts10 = @dts10, ts11 = @ts11, dts11 = @dts11, ts12 = @ts12, dts12 = @dts12, ts13 = @ts13, dts13 = @dts13, ts14 = @ts14, dts14 = @dts14, ts15 = @ts15, dts15 = @dts15, ts16 = @ts16, dts16 = @dts16, ts17 = @ts17, dts17 = @dts17, ts18 = @ts18, dts18 = @dts18, ts19 = @ts19, dts19 = @dts19, ts20 = @ts20, dts20 = @dts20, ts21 = @ts21, dts21 = @dts21, ts22 = @ts22, dts22 = @dts22, ts23 = @ts23, dts23 = @dts23, ts24 = @ts24, dts24 = @dts24 WHERE [EmployID] = @numberemp4 ", conn5) 
      numberemp4.Text = numberemp.Text 
      With command5.Parameters 
       .AddWithValue("@ts1", ts1.Text) 
       .AddWithValue("@dts1", dts1.Value) 
       .AddWithValue("@ts2", ts2.Text) 
       .AddWithValue("@dts2", dts2.Value) 
       .AddWithValue("@ts3", ts3.Text) 
       .AddWithValue("@dts3", dts3.Value) 
       .AddWithValue("@ts4", ts4.Text) 
       .AddWithValue("@dts4", dts4.Value) 
       .AddWithValue("@ts5", ts5.Text) 
       .AddWithValue("@dts5", dts5.Value) 
       .AddWithValue("@ts6", ts6.Text) 
       .AddWithValue("@dts6", dts6.Value) 
       .AddWithValue("@ts7", ts7.Text) 
       .AddWithValue("@dts7", dts7.Value) 
       .AddWithValue("@ts8", ts8.Text) 
       .AddWithValue("@dts8", dts8.Value) 
       .AddWithValue("@ts9", ts9.Text) 
       .AddWithValue("@dts9", dts9.Value) 
       .AddWithValue("@ts10", ts10.Text) 
       .AddWithValue("@dts10", dts10.Value) 
       .AddWithValue("@ts11", ts11.Text) 
       .AddWithValue("@dts11", dts11.Value) 
       .AddWithValue("@ts12", ts12.Text) 
       .AddWithValue("@dts12", dts12.Value) 
       .AddWithValue("@ts13", ts13.Text) 
       .AddWithValue("@dts13", dts13.Value) 
       .AddWithValue("@ts14", ts14.Text) 
       .AddWithValue("@dts14", dts14.Value) 
       .AddWithValue("@ts15", ts15.Text) 
       .AddWithValue("@dts15", dts15.Value) 
       .AddWithValue("@ts16", ts16.Text) 
       .AddWithValue("@dts16", dts16.Value) 
       .AddWithValue("@ts17", ts17.Text) 
       .AddWithValue("@dts17", dts17.Value) 
       .AddWithValue("@ts18", ts18.Text) 
       .AddWithValue("@dts18", dts18.Value) 
       .AddWithValue("@ts19", ts19.Text) 
       .AddWithValue("@dts19", dts19.Value) 
       .AddWithValue("@ts20", ts20.Text) 
       .AddWithValue("@dts20", dts20.Value) 
       .AddWithValue("@ts21", ts21.Text) 
       .AddWithValue("@dts21", dts21.Value) 
       .AddWithValue("@ts22", ts22.Text) 
       .AddWithValue("@dts22", dts22.Value) 
       .AddWithValue("@ts23", ts23.Text) 
       .AddWithValue("@dts23", dts23.Value) 
       .AddWithValue("@ts24", ts24.Text) 
       .AddWithValue("@dts24", dts24.Value) 
       .AddWithValue("@numberemp4", numberemp4.Text) 
      End With 
      Dim rows = command5.ExecuteNonQuery() 
      If rows = 0 Then 
       MessageBox.Show("No rows modified") 
      Else 
       MessageBox.Show("Employee's Informations Successfuly Updated!", "INFO", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      End If 
      command5.Dispose() 
      conn5.Close() 
      disableall() 
      clearall() 

     End Using 

    Catch ex As Exception 
     MessageBox.Show(ex.Message, "ERROR12", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 
    Add1.Visible = True 
    btnReg.Visible = True 
    updateBtn.Visible = False 
    RefreshDGV() 
End Sub 

我總是更新第二到第五表時

沒有行修改

這裏是我的表,使之清楚,如果它是太混亂了..

enter image description here

+0

爲什麼不同時填充所有的datagridviews? –

+0

我現在做了,先生。現在我的問題正在更新。因爲我沒有在一個datagridview中加入我的表格,所以我現在面臨很難修復更新命令,因爲它顯示「沒有行被修改」。當更新第二到第五個表時。 – wwwMarvsdotcom

+0

爲什麼會很難?你只是更新。發佈問題。我會檢查細節。 –

回答

0

假設要加載數據到標籤頁在需要的時候:

  1. 使用Load事件加載Tap的數據Page 1
  2. hook up to event選擇TabControl加載其他頁面的數據

    私人無效tabControl1_Selecting(對象發件人,TabControlCancelEventArgs E){ 如果標籤頁1

    DataTable dt = new DataTable(); 
        dt.Load(reader); 
        grid2.DataSource = dt; 
    } 
    

    }

(e.TabPage.Name == 「TabPage1」){// 加載數據