2014-01-30 34 views
0

這裏是我的存儲過程,我的問題是如何讀取DataReader或DataSet中的列值。如何從數據透視表Coloumns使用DataReader或DataSet類

ALTER PROCEDURE StudentProgressReport 
BEGIN 
    SET NOCOUNT ON; 

DECLARE @cols AS NVARCHAR(MAX), 
    @query AS NVARCHAR(MAX) 

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(r.Exam_Date) 
    FROM Institute_Student_Results r 
    FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'') 

set @query = 'SELECT Student_Roll_No,Student_First_Name,Student_Last_Name,' + @cols + ' from 
     (
      select distinct u.Student_Roll_No, 
      s.Student_First_Name,s.Student_Last_Name,    
      u.Marks,e.Examination_Total_Marks, 
      u.Exam_Date 

      from Institute_Student_Results u 

      inner join Institute_Examinations e 
      on u.Exam_ID=e.Institute_Examination_ID 

      inner join Student_Master s 
      on u.Student_ID=s.Student_ID 

      where e.Institute_Course_Batch_ID=110 
      and u.Exam_ID=105 
      and u.Marks is not null    

     ) x 
     pivot 
     (
      MAX(Marks) 
      for Exam_Date in (' + @cols + ') 
     ) p ' 

    execute(@query)  

END 

回答

0

您可以使用SqlDataAdapter來執行存儲過程並用結果填充DataSet。有關填充DataSet的示例或此one的填充DataTable的示例,請參見此SO post