Я ищу мнения, а также если я пропустил вариант.
Я пишу небольшой инвентарь и систему отслеживания продаж, используя С# и mysql (MySqlDataReader). Поскольку mysql не разрешает несколько наборов результатов (MySqlDataReaders) для каждого соединения, у меня есть дилемма. Строками формы продажи являются пользовательский элемент управления. Одним из полей для выбора является номер позиции. Поскольку я не знаю, сколько элементов у меня будет или сколько строк закончится в заказе клиента, я не уверен, каким образом это кодировать. Вот варианты, которые я придумал.
1) Выполните SQL несколько раз (по одному на пользовательский элемент управления) для извлечения элементов.
2) Откройте несколько соединений, чтобы я мог иметь несколько наборов результатов.
3) Сбросьте все элементы в список в MainForm и извлеките его в каждом пользовательском элементе управления.
Вариант 3 кажется лучшим вариантом из сокращения "удара точки базы данных", но если у меня есть тысячи предметов, это вызовет проблемы с памятью?
У кого-нибудь есть идея, которая была бы наиболее эффективной (принимая во внимание базу данных и память) или есть другие варианты, о которых я не думал?
Существует два распространенных способа решения этой проблемы в ASP.NET Webforms.
Единый контроль привязки данных, например GridView или ListView
Управление ретрансляторами
В любом случае, нажатие 1000 страниц записей на веб-страницу никогда не является хорошей идеей. Если у вас есть много результатов для запроса, вы хотите получить больше объявлений о том, как вы показываете это пользователю.