Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Не хочет работать Relations


Автор: nextzi0 13.7.2010, 14:12
Код

try
            {
                sqlcon.Open();
                SqlDataAdapter DA_employees = new SqlDataAdapter("SELECT * FROM employees", sqlcon);
                SqlDataAdapter DA_depsubunits = new SqlDataAdapter("SELECT * FROM depsubunits", sqlcon);
                DataSet DS = new DataSet();
                DA_employees.Fill(DS, "Employees");
                DA_depsubunits.Fill(DS, "DepSubunits");
                DataRelation rel = DS.Relations.Add("DepSubunits_Employees", DS.Tables["DepSubunits"].Columns["id"], DS.Tables["Employees"].Columns["subunitcode"]);
                DS.Relations.Add(rel);
                foreach (DataRow rowDepSubunit in DS.Tables["DepSubunits"].Rows) 
                {
                    Console.WriteLine("{0} {1}", rowDepSubunit["number"], rowDepSubunit["name"]);
                    foreach (DataRow rowEmployee in rowDepSubunit.GetChildRows(rel))
                    {
                        Console.WriteLine(" {0} {1} {2} {3}",rowEmployee["tablenumber"],rowEmployee["middlename"],rowEmployee["firstname"],rowEmployee["lastname"]);
                        Console.WriteLine();
                    }
                }
            }

Получаю исключение при создании объекта rel: Невозможно включить это ограничение, т.к. не все значения имеют соответствующие родительские значения.
Хочу, чтобы для подразделения с id вывелись все сотрудники,у которых subunitcode=id

Автор: mrbrooks 15.7.2010, 09:37
nextzi0,
предлагаю вопрос решить в другом русле, а именно в данном случае не играться с Relations, а обойтись объединяющим sql-запросом с выборкой WHERE или JOIN.

Мое IMHO - relations - кошерны для вывода связанных таблиц в гуе в разные гриды, в данном случае толку от них мало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)