需要帮助从SQL数据库中的多个表填充asp:dropdownlist

时间:2009-12-22 14:27:36

标签: c# asp.net sql drop-down-menu

我有4个表:CustomerDocument,CustomerLink,CustomerAdditionalInfo和CustomerImage。它们每个都具有CustomerNumber值,我需要从每个表中提取客户编号并放入下拉列表。我知道如何使用一个表,但不是多个表。此外,还有一个限制,即CustomerNumber不需要为null,因此我是否需要在每次加入时都包含此项?这是我现在的一些代码。 oDb是DataContext

var oData = from c in oDb.CustomerAdditionalInfos
                    where ( c.CustomerID == CustomerID && 
                            c.CustomerNumber != null   && 
                            c.CategoryID == CategoryID )

                    orderby c.CustomerNumber
                    select new { c.CustomerNumber };

        return oData;

1 个答案:

答案 0 :(得分:2)

你可以这样做....

var oData = (from c in oDb.CustomerAdditionalInfos
             where c.CustomerNumber != null
             select new 
             {
                  CustomerNumber = c.CustomerNumber
             }).Union
                 (from d in oDb.CustomerDocument
                  where d.CustomerNumber != null
                  select new
                  {
                      CustomerNumber = d.CustomerNumber
                  }).Union
                      (from l in oDb.CustomerLink
                       where l.CustomerNumber != null
                       select new
                       {
                           CustomerNumber = l.CustomerNumber
                       }).Union
                            (from i in oDb.CustomerImage
                             where i.CustomerNumber != null
                             select new
                             {
                                 CustomerNumber = i.CustomerNumber
                             }).OrderBy(c => c.CustomerNumber);

这只是所有四个表中所有CustomerNumbers的联合。如果有重复,这将包括重复。如果您只想要不同的CustomerNumbers,那么只需在Distinct()之后执行OrderBy