我正在尝试为我正在做的项目编写时间表应用程序,并且在一个月的大部分时间里,我没有在系统的关键部分方面取得进展。我需要能够通过周一至周日的每周视图编辑数据并将其添加到应用程序中。我有一个 SQL(服务器)数据透视表,它可以返回我每天输入的数据,但由于它使用动态标题作为一周中的日期,因此要编辑的 gridview 函数将不起作用。我试过绑定数据,但这有同样的问题,日期。我想我需要创建一个带有文本框的表单来输入数据并以这种方式更新,但是如何使用我拥有的查询填充这样的表单?我还需要能够添加新行。我已经走到了尽头,即将放弃编码,因为它现在让我感到压力。
这是我的 SQL,它准确地显示了我想要的数据:
ALTER PROCEDURE [dbo].[list_weekly_times]
as
DECLARE @offSetmon int, @fromdt datetime,@todt datetime,@offsetsun int, @COLName varchar (max)
, @SQL varchar (max), @fromdate as date, @todate as date, @offsetmonval as int, @offsetsunval as int
SELECT @offSetmon = 1
select @fromdt = GETDATE()
SELECT @offSetSun = 7
select @todt = GETDATE()
SELECT @fromdt = CONVERT(DATETIME, CONVERT(INT, @fromdt) - (DATEPART(WEEKDAY, @fromdt) - @offSetmon))
SELECT @todt = CONVERT(DATETIME, CONVERT(INT, @todt) - (DATEPART(WEEKDAY, @todt) - @offSetsun))
select @COLName = ''
, @SQL = ''
while @FromDt <= @ToDt
begin
if (@COLName = '')
begin
set @COLName = '[' + convert (varchar (10), @FromDt, 121) + ']'
end
else
begin
set @COLName = @COLName + ', [' + convert (varchar (10), @FromDt, 121) + ']'
end
set @FromDt = dateadd (d, 1, @FromDt)
end
print @COLName
select @SQL = 'select project_code, activity_code,' + @COLName +
' From (select project_code, activity_code, project_date, Project_time from timesheet) as P
pivot
( sum (Project_time)
for project_date in (' + @COLName + ')
) as pvt
order by project_code
'
print @SQL
exec (@SQL)
只是不适用于编辑,因为枢轴是为数据显示而不是数据编辑而设计的。
也许枢轴方法是错误的,需要另一个方向。
任何帮助、教程、示例都会有所帮助。