Member 11856456 Ответов: 0

Как я могу обновлять свои таблицы только при обнаружении совпадающих данных?


Я создал подпрограмму обновления, которая содержит:

Public Sub update()

       sqlconn1.Open()

       Profileadaptor.SelectCommand = New SqlCommand("select * from " + "[Profile]", sqlconn1)
       Profileadaptor.SelectCommand.ExecuteNonQuery()
       Profileadaptor.Fill(profiledt)

       'Death table
       Deathadaptor.SelectCommand = New SqlCommand("select * from " + "[Death]", sqlconn1)
       Deathadaptor.SelectCommand.ExecuteNonQuery()
       Deathadaptor.Fill(deathdt)

       'Cemetery table
       Cemeteryadaptor.SelectCommand = New SqlCommand("select * from " + "Cemetery_reference", sqlconn1)
       Cemeteryadaptor.SelectCommand.ExecuteNonQuery()
       Cemeteryadaptor.Fill(cemdt)

       'burial table
       Burialadaptor.SelectCommand = New SqlCommand("select * from " + "Burial", sqlconn1)
       Burialadaptor.SelectCommand.ExecuteNonQuery()
       Burialadaptor.Fill(burialdt)

       'SSN table
       SSNadaptor.SelectCommand = New SqlCommand("select * from " + "Cemetery_reference", sqlconn1)
       SSNadaptor.SelectCommand.ExecuteNonQuery()
       SSNadaptor.Fill(SSNdt)

       sqlconn1.Close()

   End Sub


Я создал подпрограммы для каждой таблицы, содержащей классы, чтобы удерживать переменную до тех пор, пока ее новая информация не будет добавлена в datatable в конце, который основан на rowposition.

затем, наконец, как только все соответствие сделано, он переключается на последнюю подпрограмму

Sub update_all_tables()

       'profile table
       Profileadaptor.UpdateCommand = cbpa.GetUpdateCommand()
       Profileadaptor.Update(profiledt)
       Profileadaptor.Dispose()

       'death table
       Deathadaptor.UpdateCommand = cbda.GetUpdateCommand()
       Deathadaptor.Update(deathdt)
       Deathadaptor.Dispose()

       'burial table
       Burialadaptor.UpdateCommand = cbba.GetUpdateCommand()
       Burialadaptor.Update(burialdt)
       Burialadaptor.Dispose()

       'cemetery table
       Cemeteryadaptor.UpdateCommand = cbca.GetUpdateCommand()
       Cemeteryadaptor.Update(cemdt)
       Cemeteryadaptor.Dispose()

       'SSN table
       SSNadaptor.UpdateCommand = cbssn.GetUpdateCommand()
       SSNadaptor.Update(SSNdt)
       SSNadaptor.Dispose()

   End Sub


хотя это было быстрее, чем мой исходный код, он все еще медленный. Я предполагаю, что это потому, что я обновляю таблицу в целом, а не соответствующие данные в таблице.

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

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

Gerry Schmitz

Кошка жива или мертва?

MadMyche

Нет никакой кошки

0 Ответов