这是traspose还是什么?在aspx页面上显示数据需要一些帮助。 [英] This is traspose or what? Need little help displaying data on aspx page.

查看:109
本文介绍了这是traspose还是什么?在aspx页面上显示数据需要一些帮助。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我在数据库中有这样的值:

员工姓名日期和时间

Xing Zuber 2013-07-13 09 10 PM
Daving solman 2013-07-13 09 08 PM
Iyan Yokovich 2013-07 -12 09 00 PM
Dev richardson 2013-07-03 09 11 PM
Xing Zuber 2013-07-03 09 16 PM
Xing Zuber 2013-07-11 09 02 PM
Dev richardson 2013-07-11 09 15 PM
.......................................



我在数据库中有相同的结构,a我能够在gridview中显示这个(与上面的示例相同),没关系。



我需要像下面这样显示它。

姓名2013-07-13 ... 2013-07-11 ... 2013-07-03 .......... 
Xing Zuber < span class =code-digit> 09 : 10 PM 09 02 PM 09 16 PM ..... .....
Dev richardson ........ 09 15 PM 09 11 PM ..........



我的问题是,



1)在这种情况下使用哪种适当的控件?



2)为了得到这个,我应该采用什么方法?



我将在页面顶部有两个日历来选择日期。当用户从中选择日期时,需要在这些日期之间显示数据。



任何帮助都会非常感激。



问候..

解决方案

要做的步骤:

1) 创建存储过程(SP) [ ^ ]

2)将代码复制并粘贴到SP的正文中:

  CREATE   TABLE  #EmpInput( EmpName  VARCHAR  30 ),DaTi  SMALLDATETIME 

INSERT INTO #EmpInput(EmpName,DaTi)
SELECT ' Xing Zuber'' 2013-07-13 09:10 PM'
UNION ALL SELECT ' Daving solman'' 2013-07- 13 09:08 PM'
UNION ALL SELECT ' Iyan Yokovich'' 2013-07-12 09:00 PM'
UNION ALL SELECT ' Dev richardson'' 2013-07-03 09:11 PM'
UNION ALL SELECT ' Xing Zuber'' 2013-07-03 09:16 PM'
UNION ALL SELECT ' Xing Zuber',< span class =code-string>' 2013-07-11 09:02 PM'
UNION ALL SELECT ' Dev richardson'' 2013-07-11 09:15 PM'

DECLARE @cols VARCHAR 300
DECLARE < span class =code-sdkkeyword> @ dt VARCHAR 1000
DECLARE @ pt VARCHAR 4000

SET @cols = STUFF(( SELECT DISTINCT ' ] ,[' + CONVERT VARCHAR 10 ),DaTi, 121
FROM #EmpInput
ORDER BY ' ],[' + CONVERT VARCHAR 10 ),DaTi, 121
FOR XML路径(< span class =code-string>' ')), 1 2 ' ')+ ' ]'
- SELECT @cols AS Cols

SET @ dt = N ' SELECT EmpName,CONVERT(VARCHAR(10),DaTi,121)AS IDate,CONVERT (VARCHAR(10),DaTi,108)AS ITime
FROM #EmpInput'

- 执行(@dt)

SET @ pt = N ' SELECT EmpName,' + @cols + ' ' +
' FROM(' + @ dt + ' )AS DT' +
' PIVOT(MAX(ITime)FOR IDate IN(' + @cols + ' ))AS PT'
EXEC @ pt


DROP #EmpInput



3)根据需要更改代码

4)从ASP.NET代码中调用SP [ ^ ]并将结果绑定到gridview;)



结束;)


Hello everyone,

I have values in database like this:

Employee name      Date And Time

Xing Zuber         2013-07-13 09:10 PM
Daving solman      2013-07-13 09:08 PM
Iyan Yokovich      2013-07-12 09:00 PM 
Dev richardson     2013-07-03 09:11 PM
Xing Zuber         2013-07-03 09:16 PM
Xing Zuber         2013-07-11 09:02 PM
Dev richardson     2013-07-11 09:15 PM
.......................................


I have same structure in database,and i am able to display this in gridview(Same as shown in above sample),that's fine.

I need to display it like below.

Name            2013-07-13   ...2013-07-11    ...2013-07-03  ..........
Xing Zuber      09:10 PM       09:02 PM        09:16 PM      ..........
Dev richardson  ........       09:15 PM        09:11 PM      ..........


My question is,

1) Which is the appropriate control to use in such scenario?

2) What approach should i look at in order to get this?

I will have two calenders at top of the page to select dates. When user selects the date from it,data needs to be displayed between those dates.

Any help would be really appreciated.

Regards..

解决方案

Steps to do:
1) Create Stored Procedure (SP)[^]
2) Copy And Paste below code into the body of SP:

CREATE TABLE #EmpInput (EmpName VARCHAR(30), DaTi SMALLDATETIME)

INSERT INTO #EmpInput (EmpName, DaTi)
SELECT 'Xing Zuber', '2013-07-13 09:10 PM'
UNION ALL SELECT 'Daving solman', '2013-07-13 09:08 PM'
UNION ALL SELECT 'Iyan Yokovich', '2013-07-12 09:00 PM' 
UNION ALL SELECT 'Dev richardson', '2013-07-03 09:11 PM'
UNION ALL SELECT 'Xing Zuber', '2013-07-03 09:16 PM'
UNION ALL SELECT 'Xing Zuber', '2013-07-11 09:02 PM'
UNION ALL SELECT 'Dev richardson', '2013-07-11 09:15 PM'

DECLARE @cols VARCHAR(300)
DECLARE @dt VARCHAR(1000)
DECLARE @pt VARCHAR(4000)

SET @cols = STUFF((SELECT DISTINCT '],[' + CONVERT(VARCHAR(10),DaTi,121)
					FROM #EmpInput
					ORDER BY  '],[' + CONVERT(VARCHAR(10),DaTi,121)
				FOR XML PATH('')),1,2,'') + ']'
--SELECT @cols AS Cols

SET @dt = N'SELECT EmpName, CONVERT(VARCHAR(10),DaTi,121) AS IDate, CONVERT(VARCHAR(10),DaTi,108) AS ITime
		FROM #EmpInput'
--EXEC(@dt)

SET @pt = N'SELECT EmpName, ' + @cols + ' ' +
		'FROM (' + @dt + ') AS DT ' + 
		'PIVOT(MAX(ITime) FOR IDate IN(' + @cols + ')) AS PT '
EXEC(@pt)


DROP TABLE #EmpInput


3) Change the code to your needs
4) Call SP from ASP.NET code behind[^] and bind result to a gridview ;)

End ;)


这篇关于这是traspose还是什么?在aspx页面上显示数据需要一些帮助。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆