需要帮助从SQL数据库中的多个表填充一个asp:dropdownlist
问题描述:
我有4个表:CustomerDocument,CustomerLink,CustomerAdditionalInfo和CustomerImage。他们每个人都有一个CustomerNumber的值,我需要从每个表中拉出客户号码并放入一个下拉列表中。我知道如何用一张桌子做,但不是多个。此外,还有一个限制,即客户编号需要不为空,所以我需要在每个连接中包含这个限制吗?这里有一些我现在拥有的代码。 ODB是DataContext的需要帮助从SQL数据库中的多个表填充一个asp:dropdownlist
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;
答
你能做到这一点....
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,那么只需在OrderBy
之后执行Distinct()
。
非常感谢,这工作完美。当用户从ddl中选择客户号码时,如何跟踪客户号码来自哪个表格? – Justen 2009-12-22 14:43:30
你可以在'select new'中添加第二个字段,这将是表名。然后,您将将CustomerNumber指定为“DataTextField”,将“TableName”指定为“DataValueField”。 – 2009-12-22 14:58:02
好吧,非常感谢,非常有帮助。出于好奇,如果有人想跟踪他们来自哪个表,那么又该如何呢?例如,如果它们在表格中是重复的数字(但是不同的值),并且您想要用数字加载ddl,并且跟踪该数字的ID和表名称,那么会怎么做呢? – Justen 2009-12-22 15:07:51