2016-08-10 5 views
-3

У меня есть список n записей и для каждого идентификатора записи, мне нужно получить список целых чисел (partids) из базы данных.Избегайте множественных вызовов db на SQL Server

В настоящее время из приложения я должен пропустить n раз, передавая основной идентификатор, чтобы получить каждый список из db.

Очевидно, что это влияет на производительность приложения (приложение .NET Winforms с помощью vb.net).

Есть ли способ избежать нескольких вызовов?

Как я могу отправить список идентификаторов n получить мой желаемый результат в качестве вывода?

Пример

  • ввода: record1, имеющий идентификатор 100

  • выход: идентификатор 100, PartID 1, 2, 3

То же самое для п строк

Я не знаю как .. любая помощь пожалуйста

+0

Объясните вместе с образцом данные вместо слов – TheGameiswar

+0

Включите 'partid' в основной запрос как поле 'xml'. Это может или не может улучшить производительность, но уменьшить количество запросов. –

+0

Я удивлен. Я считаю, что VB может сразу принять весь набор данных и не получать SQL для каждой строки. –

ответ

0

Если вы поделитесь своим запросом своим использованием, мы сможем дать вам отзывы. Предполагая, однако у вас есть запрос, как

SELECT PartId FROM tblParts WHERE CategoryId = 100 

Вы можете использовать

SELECT CategoryId, PartId FROM tblParts WHERE CategoryId in (100,101,102 etc) 

для запроса к базе данных и возвращать соответствующие записи сразу. (или даже опустить предложение WHERE, чтобы вернуть все в таблицу).

Затем в локальном формате данных, с которого вы вернетесь, вы можете использовать метод .Select("CategoryId=101") для выполнения локального запроса в отношении ваших данных, а затем обрабатывать ваши данные как обычно.

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