C # и MySQL повторяющиеся запросы

0

Я ищу мнения, а также если я пропустил вариант.

Я пишу небольшой инвентарь и систему отслеживания продаж, используя С# и mysql (MySqlDataReader). Поскольку mysql не разрешает несколько наборов результатов (MySqlDataReaders) для каждого соединения, у меня есть дилемма. Строками формы продажи являются пользовательский элемент управления. Одним из полей для выбора является номер позиции. Поскольку я не знаю, сколько элементов у меня будет или сколько строк закончится в заказе клиента, я не уверен, каким образом это кодировать. Вот варианты, которые я придумал.

1) Выполните SQL несколько раз (по одному на пользовательский элемент управления) для извлечения элементов.

2) Откройте несколько соединений, чтобы я мог иметь несколько наборов результатов.

3) Сбросьте все элементы в список в MainForm и извлеките его в каждом пользовательском элементе управления.

Вариант 3 кажется лучшим вариантом из сокращения "удара точки базы данных", но если у меня есть тысячи предметов, это вызовет проблемы с памятью?

У кого-нибудь есть идея, которая была бы наиболее эффективной (принимая во внимание базу данных и память) или есть другие варианты, о которых я не думал?

  • 0
    Практическое правило: всегда старайтесь, чтобы БД делала грязную работу. Если вы можете попросить БД ограничить ваш результирующий набор вместо того, чтобы делать это в своем коде (в памяти), сделайте это. Если вы можете уменьшить количество туда и обратно, сделайте это. если вы можете получить все необходимые результаты в одном выражении, а не обращаться к БД несколько раз, сделайте это
  • 0
    Что именно выбирают пользователи по номеру товара? Вам не нужно запрашивать базу данных, чтобы показать им правильный выбор, или у вас есть "угадать"? Кроме того, вариант 4 будет заключаться в создании одного запроса на основе элементов, используя что-то вроде условия IN .... это усложняет создание параметризованного запроса, но не является редкостью.
Показать ещё 4 комментария
Теги:

1 ответ

0

Существует два распространенных способа решения этой проблемы в ASP.NET Webforms.

  1. Единый контроль привязки данных, например GridView или ListView

  2. Управление ретрансляторами

В любом случае, нажатие 1000 страниц записей на веб-страницу никогда не является хорошей идеей. Если у вас есть много результатов для запроса, вы хотите получить больше объявлений о том, как вы показываете это пользователю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню