我有一个项目具有asp页面的动态字段详细信息。执行该页面时,将查询数据库中的动态字段列表,然后在asp页面上运行时创建所有控件。现在,所有这些动态字段在另一个(或者说多个)表中都有对应的数据。T-SQL中的多项选择并将一个单元格转置到另一个单元格
在动态控制详细表中的数据是这样的:
FieldID | FieldName | MappingTableName | MappingColumnName
-------------------------------------------------------------------------
92 | txtPrsnFirstName | Table1 | FirstName
93 | txtPrsnLastName | Table1 | LastName
94 | ddlPrsnGender | Table2 | Gender
95 | txtCompany | Table2 | Company
96 | txtDesignation | Table1 | Designation
相应数据表中的数据如下所示:
表1:
PersonID | FirstName | LastName | Designation
-----------------------------------------
1 | Person1 | SomeName | Manager
2 | Person2 | MoreName | Executive
表2:
PersonID | Gender | Company
--------------------------------------
1 | Male | ABC Cons
2 | Female | XYZ PVT.LTD
现在,我所做的是,创建一个存储过程,一次返回所有三个表数据,我会在DataSet
中获取它们中的每一个,然后我将首先遍历FieldTable数据,然后获取从Table1
和Table2
相应的数据我需要编写获取的方式,从Table1
和Table2
数据会以多行的形式得到调换了数据的查询(一次获取只有一个记录)像这个。
FieldID | FieldName | MappingTableName | MappingColumnName | Data
---------------------------------------------------------------------------------------
92 | txtPrsnFirstName | Table1 | FirstName | Person1
93 | txtPrsnLastName | Table1 | LastName | SomeName
94 | ddlPrsnGender | Table2 | Gender | Male
95 | txtCompany | Table2 | Company | ABC Cons
96 | txtDesignation | Table1 | Designation | Manager
如何找出哪个值属于相应表中的哪个字段名?你怎么知道名字的数据是Person1而不是Person2 – DhruvJoshi
请参阅我已经提到过会有一个选择(你可以使用Join的逻辑)。意味着只有一个来自Table1和Table2的记录将被立即提取。 (你的)前一个问题已经在(我的)问题中回答了;字段表具有'MappingTableName'和'MappingColumnName',可用于从数据表中选择相应的数据。 – Cyberpks
但是,您如何知道该映射表和映射列中的哪条记录,您知道,哪一行? – DhruvJoshi