|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Здравствуйте! У меня приложение на Windows Forms.Я подключаюсь к базе данных с использованием Entity Framework. Периодически то выключается то включается интернет . При выключении приложение зависает. Нужно что бы все данные из базы данных скачивались сразу при первом подключении и формы работали нормально при разрыве соединения, а при восстановлении соединения происходила синхронизация. Пользователя пока всего три. Как достичь такого результата? Благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 10:51 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
То есть каждый пользователь работает с локальной копией БД? Один удалил внешний ключ, другой добавил запись с этим внешним ключом, а потом всё должно волшебным образом синхронизироваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 11:30 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro То есть каждый пользователь работает с локальной копией БД? Один удалил внешний ключ, другой добавил запись с этим внешним ключом, а потом всё должно волшебным образом синхронизироваться? Я думал может есть вариант с приоритетом пользователей по времени изменения. Если нет, то нужно что бы форма работала только для чтения. Возможно так? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 12:29 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Ну так тебе EF не поможет, тебе нужно саму архитектуру базы прежде всего адаптировать. К примеру, все ID не должны быть автоинкрементными, а, например, GUID-ами jeanssp Я думал может есть вариант с приоритетом пользователей по времени изменения. jeanssp Если нет, то нужно что бы форма работала только для чтения. В общем, если ты считаешь, что есть волшебная пилюля для существующей БД - нет, ее нет. Работа с отвязанной БД должна быть продумана на уровне ТЗ и архитектуры, потом спроектирована, а потом реализована. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 12:57 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Может как нибудь выкачивать бд, сохранять ее в XML на локальном компьютере , и менять подключение то к одной то к другой бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 13:11 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
вопрос не в том, как работать с локальной копией, а в том, что ты будешь делать при слиянии изменений нескольких пользователей ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 13:41 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Пользователи не будут ничего менять. Но должны иметь возможность просматривать данные. Ничего страшного если данные не совсем свежие. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 14:16 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
jeanssp Пользователи не будут ничего менять ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 14:27 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Это система учета для розничного магазина. Я еще к ней интернет магазин пристраиваю на blazor.(почти готов, спасибо Вам) Там сидят продавцы в отделе(2 отдела) и им надо посмотреть товар на остатках по артикулу, найти клиента по номеру телефона с его заказами. Интернет конечно можно сделать стабильный , но это получится 10000 в год. А так он у меня бесплатный. Если не решу вопрос с локальной бд, придется интернет налаживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 14:51 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
ну если это готовое, а не пишущееся изделие, но надо смотреть конкретику, информации слишком мало ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 15:06 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я его только написал. Сейчас внедряю. БД заполнил уже реальными данными. Вот код формы. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 15:38 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Изучай тему Репликация БД . Если у тебя клиенты только читают БД, то обновление копии вполне просто можно организовать встроенными средствами MS SQL. В твоей проге ничего менять не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 16:26 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
jeanssp Shocker.Pro, Я его только написал. Сейчас внедряю. БД заполнил уже реальными данными. Вот код формы. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88.
Вот как написал, так и работает. Почитайте что-ли про SOLID, гексагональную архитектуру, Microsoft Application Architecture... Ну или если хотите готовенькое, то выкидывайте Entity Framework и берите старый добрый DataSet, он как раз для работы в отсоединённом режиме придуман был. В этом, кстати, в каждой книжке по ADO.NET, что я в руках держал, написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 19:09 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
jeanssp Я подключаюсь к базе данных с использованием Entity Framework. Периодически то выключается то включается интернет . База данных торчит в интернет - это пять! Безопасность на уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2020, 19:12 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
skyANA База данных торчит в интернет - это пять! Безопасность на уровне. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2020, 00:21 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
skyANA, Что я делаю неправильно, поясните, пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2020, 10:44 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
>jeanssp, вчера, 10:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1332189&msg=22256940][22256940] >... Нужно что бы все данные из базы данных скачивались сразу... < Периодически, каждый раз с построением нового соединения, качивай данные в кеш. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2020, 11:32 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Я бы сказал, что тут две проблемы: 1) Классическая проблема конкурентного доступа. Решения два: пессимистичный (блокировка записи до сохранения сущности), оптимистичный (фетч более свежей копии данных, основываясь на дифф row_version); 2) Отсутствие алгоритма поллинга данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2020, 12:30 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Я еще думаю попробовать выполнять операцию извлечения данных из БД в асинхронном режиме. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Этот код выдает ошибку. Как исправить? И еще обернуть это в try catch может быть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 13:15 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
jeanssp ошибку Нафига ты вообще материализуешь всю коллекцию до выполнения фильтрации? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 15:50 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Все равно не пашет. Ну не понимаю я! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 16:29 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Слушай, ну надо же в конце концов прочитать текст ошибки, тебе же компилятор четко говорит, в чем проблема. Или ты так и будешь куски кода сюда выкладывать? Что ты тут пытаешься ожидать с помощью await? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 16:45 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Когда ты наводишь мышиный курсор на метод, студия показывает тебе, какой тип возвращается. Не используй var, если не можешь сходу сообразить, какого типа у тебя переменная, хотя студия это тоже подсказывает. Ну про то, что учебник надо прочесть до того, как писать код, это я уже, кажется, тебе говорил. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 16:48 |
|
Подключение к базе данных при нестабильном интернете.
|
|||
---|---|---|---|
#18+
Shocker.Pro, При помощи await я хочу добиться что бы форма не зависала при кратковременном отключении интернета. Код: c# 1.
вот так ошибок нет, но когда кабель выдергиваю, при событии Код: c# 1.
все зависает и вываливается ошибка (SqlException: Ошибка на транспортном уровне при получении результатов с сервера. (provider: Session Provider, error: 19 - Физическое подключение не используется) ) Как бы ее обработать, что бы форма не зависала ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2021, 17:24 |
|
|
start [/forum/topic.php?fid=17&tid=1349042]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
384ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 229ms |
total: | 730ms |
0 / 0 |