我有一个搜索页面,其中有2个过滤器。一个是城市,另一个是服务。 城市值在usertable中,其中city是column,服务值在另一个服务表中 当我搜索同时应用两个过滤器时,输出必须显示将两个结果合并到一个网格视图中的答案/
请提出逻辑我该怎么办?
答案 0 :(得分:0)
如果在SQL数据库中使用存储的proc,一种方法是编写一个以takdse city和service为参数的存储的proc,并使用SQL Join返回数据。在您的C#代码或类中,您可以调用SQL存储的proc并将其映射到DataTable并解析结果,然后对数据进行JSON序列化以将其发送回客户端。如果使用的是Enitity Framework,则可以对Linq查询执行相同的操作,并将其映射到c#模型对象。然后,您可以JSON序列化该数据并将其发送回客户端。在客户端代码上,您可以解析列表并将其显示在使用任何客户端框架的网格中。
这将有助于您了解有关服务器端和客户端框架的更多详细信息。
答案 1 :(得分:0)
您要使用SQL查询将2个表连接在一起。
您可以按照以下相同的方式做您想做的事情。
首先让我们想象2个表的结构,让我们选择“人”和“地址”作为我们的表。
这是人桌:
ID (PK AutoIncrement) | FirstName (nvarchar(50)) | LastName nvarchar(50)) | AddressID (int) |
1 | Bob | Bobson | 8 |
2 | Dob | Dobbers | 9 |
这是地址表:
AddressID (PK AutoIncrement) | HouseNum (int) | PostCode nvarchar(6)
8 | 2 | AL23FP
9 | 37 | AL23UR
您看到我们可以基于它们的AddressID
来联接这些表,因为它们共享值。
因此您可以通过执行以下操作来查询这两个表:
SELECT h.FirstName + ' ' + h.LastName AS Name, a.PostCode FROM HUMAN h
INNER JOIN Adress a on h.AddressID = a.AddressID
这是将查询仅应用于具有不同表列名称的过滤器的基础。
INNER JOIN
将仅保留两个表之间的匹配对应关系,如果两个表中都存在相互信息。
您可以看到其他Joins
here