2015-01-08 4 views
1

У меня есть несколько наборов данных, которые используются в нескольких формах. поэтому я делаю набор данных общедоступным и сохраняю его в своей Mdiparent-форме. когда я открываю любую форму, я использую этот вызов в наборе данных на дочерней форме и свяжу этот набор данных с моим списком. Есть 20 наборов данных, которые используются на форме. Поэтому из-за этого времени загрузки требуется около 30-35 секунд. Поэтому я хочу использовать этот набор данных как ref. Как я могу это сделать . Ниже код, который я использую сейчасВозможно использование набора данных как ref

На Форме Родитель

public DataSet dszip = null; 
    dszip = _forderdac.GetZipPostal(); 

По форме детского

DataSet dszip = dsAddr.Copy(); 
cmboboxZip.DataSource = dszip.Tables[0]; 

Спасибо за ваши комментарии и советы.

+0

Объект типа 'DataSet' является ссылочным типом по определению. Вы противодействуете этому, вызывая '.Copy();'. Поэтому, если вы хотите использовать ссылку «DataSet», не копируйте ее. – Adimeus

+0

@Adimeus Есть несколько combobox является связывание из одного набора данных. поэтому я использую '.COPY()' –

ответ

2

A DataSet - Reference Type. Value Types примитивные типы, как int, bool, double, long и т.д.

DataSet не лучше Approch для передачи данных. Вы можете использовать generics коллекции, такие как List<T>, и создать класс (объект DTO для образца), который содержит только свойства, необходимые для привязки к форме. С этим вы можете получить лучшую производительность.

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

В этой статье объясняются некоторые детали, почему лучше использовать коллекцию обобщений вместо набора данных. http://msdn.microsoft.com/en-us/magazine/cc163751.aspx

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