0

学生コード| student.Name |地域名|場所名| アセットの詳細 |

各生徒に基づいて資産の詳細を表示する必要があります。1 人の生徒に対して複数のアセットの詳細が存在する可能性があります。これをリピーターまたはグリッドビューで使用するにはどうすればよいですか。

私がSQLに持っているテーブル。

学生コード | 学生名 | 資産の詳細
1 Ray ラップトップ
1 Ray ベッド
2 Raj 電話
2 Raj 充電器\

  .... このように、一意の学生コードごとに資産の詳細をページに表示したいと考えています。

学生コード | 学生名 | 資産の詳細

1 Ray ラップトップ
                                                           ベッド
2 Raj 電話
                                                            充電器

SQLからのヒットが1つだけで同じことを実行するにはどうすればよいですか?

4

2 に答える 2

0

次のことができます。

ストアドプロシージャを使用して、次のクエリに対して2つの結果セットを返します

SELECT DISTINCT StudentCode, studentname FROM StudentInfo

SELECT StudentCode, student name, Asset Details

2つのテーブルを使用して結果のデータセットを作成します。最初のテーブルに「Student」、2番目のテーブルに「StudentInfo」という名前を付けることができます。

テーブルの関係を作成します(構文にはインテリセンスを使用してください)

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

GridViewをDataSetにバインドします

アセットの詳細のテンプレート列を作成し、その列のリピーターまたはグリッドビューを挿入します。

ItemDataBoundGridViewのイベントについて。

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

2 つのリピーター コントロールを使用する代わりに、この形式のデータを取得する 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

これにより、同じ行にCSV形式のAssestdetailsを持つすべてのstudentIDの単一行が返されます

于 2012-10-17T05:04:18.353 に答える