Добрый день!
При использовании коллекции объектов сети, используя Layer.NetworkObjects есть возможность сохранить результат выборки в формат .dbf, применив метод SaveAsDBF. Хотелось бы узнать, есть ли какой-либо способ сохранить результат в массив, заранее созданный? Вариант перебора не совсем подходит, так как занимает продолжительное время.
Ситуация следующая: пользуемся C#, база MS SQL Server (перегнали с FoxPro), выполняется действие - выбор объектов на карте и привязка к ним некоторых атрибутов из базы. Делается так: коллекция объектов NetworkObjects сохраняем в .dbf (SaveAsDBF), делаем соединение и выполняем запрос к таблице. Результат помещаем в объект DataTable, который затем используется в запросе LINQ.
Если кодом, то примерно так:
HeatNet.get_NetworkObjects(eNetworkObjectFilter.eNetworkAll).SaveAsDBF("network.dbf");
DataTable dt = new DataTable();
OleDbConnection conn = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source= network.dbf");
OleDbDataAdapter da = new OleDbDataAdapter("select * from network", conn);
da.Fill(dt);
... и затем объект dt пользуется по назначению в различных запросах.
В случае, если была бы возможность сразу сохранить в массив, то отпала бы необходимость использовать dbf.
Или возможно есть другой подход к описанной ситуации?
Заранее спасибо!
При использовании коллекции объектов сети, используя Layer.NetworkObjects есть возможность сохранить результат выборки в формат .dbf, применив метод SaveAsDBF. Хотелось бы узнать, есть ли какой-либо способ сохранить результат в массив, заранее созданный? Вариант перебора не совсем подходит, так как занимает продолжительное время.
Ситуация следующая: пользуемся C#, база MS SQL Server (перегнали с FoxPro), выполняется действие - выбор объектов на карте и привязка к ним некоторых атрибутов из базы. Делается так: коллекция объектов NetworkObjects сохраняем в .dbf (SaveAsDBF), делаем соединение и выполняем запрос к таблице. Результат помещаем в объект DataTable, который затем используется в запросе LINQ.
Если кодом, то примерно так:
HeatNet.get_NetworkObjects(eNetworkObjectFilter.eNetworkAll).SaveAsDBF("network.dbf");
DataTable dt = new DataTable();
OleDbConnection conn = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source= network.dbf");
OleDbDataAdapter da = new OleDbDataAdapter("select * from network", conn);
da.Fill(dt);
... и затем объект dt пользуется по назначению в различных запросах.
В случае, если была бы возможность сразу сохранить в массив, то отпала бы необходимость использовать dbf.
Или возможно есть другой подход к описанной ситуации?
Заранее спасибо!