Чтобы ответить на свой последний вопрос первым, нет, у вас не будет двух разных соединений в сценарии 1. Передаваемое вами SqlCeConnection является ссылкой, поэтому форма и класс читателя имеют ссылку на один и тот же базовый объект соединения .
На самом деле я не думаю, что в этих двух сценариях есть огромная разница. Поскольку вы сохраняете соединение открытым в течение всего времени жизни формы, на самом деле не имеет значения, передаете ли вы его в конструктор этого вторичного класса или для каждого метода. Поэтому я думаю, что проще сделать сценарий 1 таким образом, чтобы список параметров для каждого вызова был меньше.
Это будет иметь значение, если вы пытаетесь минимизировать время жизни вашего соединения. Например, в приложении для рабочего стола Windows, подключающемся к обычному серверу SQL, на самом деле вы не захотите хранить открытые соединения на протяжении всей жизни формы, потому что, если множество людей открывают множество форм, у вас возникают проблемы с производительностью. ваш сервер. Таким образом, в этом случае вы должны создать соединение в последнюю секунду, передать его в программу чтения, чтобы получить данные, и немедленно закрыть его. Сценарий 2 будет лучше для вас в этом случае.
Но этот сценарий не кажется вам важным в мобильном приложении. Вы, вероятно, единственный, кто подключается к базе данных, поэтому не имеет значения, если вы оставите соединение открытым.