Найдено в старых файлах
OleDbConnection thisConnection = new OleDbConnection( @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source="); thisConnection.Open();//открыть соединение с БД OleDbCommand Comm = thisConnection.CreateCommand(); Comm.CommandText ="select distinct from where not in (select distinct from )"; OleDbDataReader dbr = Comm.ExecuteReader(); while (dbr.Read()) { //работа с данными, полученными из БД //объект dbr возвращает данные из БД построчно, т.е. на каждой //итерации цикла осуществляется работа с одной строкой таблицы, а //в данном случае – с одним значением корня дерева. Если у дерева //нет ни одного корня (т.е. запрос не возвращает ни одного //значения), ни одной итерации цикла не совершается. //Конкретное значение корня можно получить следующим образом: //dbr[""] или dbr[0] – в этом случае возвращаемое //значение будет иметь тип odject. Приведение типа осуществляется //сдедующим образом: ()dbr[""] } dbr.Close(); thisConnection.Close();//закрыть соединение с БД В тексте запроса - имя столбца, соответствующего элементам – предкам, - имя столбца, соответствующего элементам – потомкам, - имя таблица БД.