|
|
|
MySQL + C# (via .NET connector)
|
|||
|---|---|---|---|
|
#18+
Добрый день. Разрабатываю приложение на c# для работы с данными. Изначально все работало в xml, но с увеличением объема данных производительности стало не хватать. Т.к. из всех БД более-менее знаком только с MySQL (общался через php), а в планах было прикрутить к БД интернет-магазин, решил с нее и начать. Недолго думая, привязал к проекту официальный .NET Connector, и началось. Сначала общался с базой прямыми sql-запросами, но потом понял, что здесь так не делается =) Методом проб и ошибок остановился на таком способе работы (упрощенно): 1) создаются экземпляры DataAdapter (da), CommandBuilder (cb) и DataTable (dt). 2) инициализируется подключение к бд, в dt загружаются таблицы из БД - через da.Fill(dt). 3) работа с данными: создание/изменение строк в dt. 4) запись данных в БД - через da.Update(dt). 5) при завершении работы приложения подключение закрывается. Собственно, проблема - при изменении любой строки в dt запись в БД проходит нормально, а если ту же строку изменить повторно и попытаться записать изменения, вылетает dbConcurrencyException. После этого приложение зачастую сходит с ума и мешает все данные в кашу, помогает только перезапуск. При этом данные на сервере остаются в порядке. И нет, с БД одновременно работает только один пользователь, то есть данные от записи до записи не меняются, а значит, эксепшена быть не должно. А теперь самое интересное - эксепшн ловится при работе в сервером MySQL на локалхосте (v5.6.0). Если работать с удаленным сервером на хостинге (v5.5.42), все работает, как часы. Временно решил проблему костылем: cb.ConflictOption = ConflictOption.OverwriteChanges Но костыли это плохо, и вообще я не уверен, насколько стабильно все будет работать. Мне уже снятся кошмары, что я датаадаптер, который не может договориться с сервером. Помогите разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2015, 11:42:28 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38951575&tid=1833244]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 338ms |

| 0 / 0 |
