2014-11-18 3 views
1

У меня есть адаптер таблицы на C#, который загружает данные, этот адаптер подключен к хранимой процедуре, которая загружает данные из представления SQL. Проблема заключается в том, что этот адаптер извлекает данные, другой пользователь не может использовать остальную систему! (например, я не могу войти в систему) даже на другом ПК, и выдается сообщение (истечение времени ожидания), пока адаптер не завершит работу!Невозможно использовать базу данных при загрузке данных

SQL Заявление адаптера (выбор из вида):

select * from vw_MyView where Date>[email protected] and Date<[email protected] 

Любые идеи ?!

+0

Насколько велики ваши данные и сколько записей вы получаете? – Miller

+3

Да. Читайте на потоке. Прочитайте фонового работника. Не блокируйте пользовательский интерфейс во время длительных операций (независимо от того, что они есть). – TomTom

+0

вид может содержать 40000 записей. –

ответ

1

Я решил это! я добавил

With (noLock)

перед каждым столом. например:

Выберите * из table1 с (NOLOCK) внутреннее соединение таблица2 с (NOLOCK) на table1.ID = table2.id

Обратите внимание на With (NoLock) перед каждым столом я хочу, чтобы не замок.

Спасибо всем за ваши усилия!

-2

Если я понял вас хорошо, вы должны использовать нижеследующее, и оно будет работать нормально, пока адаптер извлекает данные.

Application.DoEvents(); 
+0

Это всего лишь бандад, чтобы скрыть настоящую проблему. Либо делайте что-то в дополнительных потоках, либо выясните, почему он работает медленно –

Смежные вопросы