powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обновлени автономных данных в многопользовательской базе SQLServer (VB.NET)
1 сообщений из 1, страница 1 из 1
Обновлени автономных данных в многопользовательской базе SQLServer (VB.NET)
    #37888195
Porksoda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, как быстро обновлять автономные данные в многопользовательской базе данных, с помощью Visual Basic .NET (меньше подходит C#).
Была база Access - форма и связанная таблица на 40000 записей и 83 полей. К таблице из форм Access по сети подключаются одновременно до 5 пользователей. Изменения, внесённые одним пользователем после DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 моментально отображаются у остальных.
Необходимо перевести эту базу в Visual Basic .NET. Для этого я перекинул таблицу в SQLServer2008 и подключил её с помощью мастера к форме VB.NET. Теперь изменения других пользователей не видно, можно только быстро сохранить свои изменения.
Запускать каждый раз TableAdapter.Fill очень долго и не подходит, так как пользователи часто меняют данные.
Пробовал два одинаковых DataTable и TableAdapter, потом в отдельном потоке обновить второй TableAdapter и сделать Merge первой таблицы со второй.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Public Class Form1

Public Reestr As DataTable  
    Dim Reestr1 As DataTable 
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Reestr = Me.KTablDataSet.Tables("Реєстр") 
Reestr1 = Me.KTablDataSet1.Tables("Реєстр") 
Me.РеєстрTableAdapter.Fill(Reestr) 
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.BackgroundWorker1.RunWorkerAsync()
    End Sub

    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
            Me.РеєстрTableAdapter1.Fill(Reestr1)
    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Reestr.Merge(Reestr1, False)
    End Sub

End Class


Но всё равно пока не закончиться Fill, с базой полноценно работать нельзя. Access работал лучше, как он это делает - не пойму, может быть использует подключенный режим, а не автономный?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обновлени автономных данных в многопользовательской базе SQLServer (VB.NET)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]