我正在尝试为我正在做的项目编写时间表应用程序,并且在一个月的大部分时间里,我都没有在系统的关键部分上取得进展。我需要能够通过周一至周日的每周 View 编辑数据并将其添加到应用程序中。我有一个 SQL(服务器)数据透视表,它可以返回我每天输入的数据,但由于它对一周中的日期使用动态 header ,因此要编辑的 gridview 函数将不起作用。
我试过绑定(bind)数据,但这与日期有相同的问题。我想我需要创建一个具有文本框的表单来输入数据并以这种方式更新,但是如何使用我拥有的查询填充这样的表单?我还需要能够添加新行。我已经对此束手无策,并且即将放弃编码,因为它现在只是让我感到压力。

这是我的 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)

只是不适用于编辑,因为枢轴是为数据显示而不是数据编辑而设计的。

也许枢轴方法是错误的,需要另一个方向。

任何帮助、教程、示例都会有所帮助。

最佳答案

停止 。您通过动态编写的 SQL 语句将数据的客户端显示与数据的物理结构串通一气。这会让你成为所有可能世界中最糟糕的。

理想情况下,您将在 ASP.NET 中使用或创建一个控件,该控件可以直接从 timesheet 表中取出漂亮而窄的行,并完全在 ASP.NET 层内处理数据输入的包装。

如果由于某种原因您不能这样做并且需要在服务器上拥有按周数据(例如,您有一个需要整体批准的每周工资单),您应该创建一个可更新的表或专用 View 到 timecard_rows ,一周中的每一天都有七个字段和一些“基准日期”指示符,因此您可以将所有七个字段强制输入和输出 timesheet 表。

关于asp.net - ASP 后面有 SQL DB 和 VB 代码。编辑返回的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11397567/

10-10 19:31
查看更多