0

学生代码| student.Name |地区名称|位置名称| 资产详情 |

我必须根据每个学生显示资产详细信息。一个学生可以有多个资产详细信息,我如何在转发器或网格视图中使用它。

我在 SQL 中的表。

学生代码 | 学生姓名 | 资产详细信息
1 Ray 笔记本电脑
1 Ray Bed
2 Raj 电话
2 Raj 充电器\

  .... 我想在我的页面上显示每个唯一学生代码的资产详细信息。

学生代码 | 学生姓名 | 资产详情

1 Ray 笔记本电脑
                                                           床
2 Raj 手机
                                                            充电器

我如何只用一次来自 sql. 的命中来执行相同的操作?

4

2 回答 2

0

不要使用两个中继器控件,而是尝试进行 sql 查询以获取此格式的数据
使用此类查询

select studentID, 
       stuff((select ',' + AssetDetails
                  from Tbl_Student t2 
                  where t2.studentID= t1.studentID
                  order by studentID
                  for xml path('')),1,1,'') as AssetDetailsString
    from Tbl_Student t1
    group by studentID

这将为每个学生 ID 返回单行,并在同一行中以 CSV 格式的 Assestdetails

于 2012-10-17T05:04:18.353 回答
0

您可以执行以下操作:

使用存储过程为以下查询返回两个结果集

SELECT DISTINCT StudentCode, studentname FROM StudentInfo

SELECT StudentCode, student name, Asset Details

为包含 2 个表的结果创建一个 DataSet。您可以将第一个表命名为“Student”,将第二个表命名为“StudentInfo”

为表创建关系(请使用智能感知语法)

DataSet.Relationships.Add("RelationshipName",Table1.StudentCode,Table2.StudentCode)

将 GridView 与 DataSet 绑定

为 Asset Details 创建一个 Template 列,并为该列插入一个转发器或 Gridview。

ItemDataBoundGridView 的事件上。

DataRowView drv = (DataRowView)e.ItemData;
Repeater.DataSource = dv.CreateChildView();
于 2012-10-17T05:42:27.710 回答