eLLoco
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Mike13x13 Цитата: Правильно понимаешь , без знания структуры базы тут что-то посоветовать сложно. | есть подозрение, что имелось ввиду программное исследование TeXpert Цитата: Я использую нетипизированный DataSet. | в MSDN на статью наткнулся Navigating DataRelations (ADO.NET) в разделе Working with DataSets (ADO.NET), если у тебя отношения между таблицами настроены (а это must have), то все вроде бы просто, код из статьи: Код: DataRelation customerOrdersRelation = customerOrders.Relations.Add("CustOrders", customerOrders.Tables["Customers"].Columns["CustomerID"], customerOrders.Tables["Orders"].Columns["CustomerID"]); DataRelation orderDetailRelation = customerOrders.Relations.Add("OrderDetail", customerOrders.Tables["Orders"].Columns["OrderID"], customerOrders.Tables["OrderDetails"].Columns["OrderID"], false); DataRelation orderProductRelation = customerOrders.Relations.Add("OrderProducts", customerOrders.Tables["Products"].Columns["ProductID"], customerOrders.Tables["OrderDetails"].Columns["ProductID"]); foreach (DataRow custRow in customerOrders.Tables["Customers"].Rows) { Console.WriteLine("Customer ID: " + custRow["CustomerID"]); foreach (DataRow orderRow in custRow.GetChildRows(customerOrdersRelation)) { Console.WriteLine(" Order ID: " + orderRow["OrderID"]); Console.WriteLine("\tOrder Date: " + orderRow["OrderDate"]); foreach (DataRow detailRow in orderRow.GetChildRows(orderDetailRelation)) { Console.WriteLine("\t Product: " + detailRow.GetParentRow(orderProductRelation)["ProductName"]); Console.WriteLine("\t Quantity: " + detailRow["Quantity"]); } } } | в твоем случае, думаю можно идти по полям DataTable из DataSet и проверять, включены ли поля в отношения, то есть явл. ли Foreign Key'ми, если да - цеплять childRow и брать нужное поле (есть подозрение, что DataSet'ы не позволят сделать запрос на выбор только одного поля из базы, хотя покопаться можно). теперь непонятно как определять нужное поле . можно хранить небольшую структурку (Dictionary, скажем), описывающую нужные поля, наверное, типа "Таблица - Глав. инф. поле" и потом пользовать как-то так Код: childRow[dict["Customers"].LabelField] | полет фантазии пошел, закругляюсь |