【问题标题】:Insert status date into gridview cell according to status根据状态将状态日期插入gridview单元格
【发布时间】:2013-11-23 05:13:51
【问题描述】:

目前我正在开发一个 Web 服务系统,使用 ASP.NET 和 C# 作为代码。对于数据库,我们使用 MS SQL。系统中有一个功能可以让您根据状态查看申请表的状态,比如待处理、进行中、已清除和已取消。页面涉及到Gridview的使用,像这样(这只是一个例子)

| 应用程序表单 ID | 日期 | 姓名 | 状态 | 状态日期 |

在我的 SQL 表中,有一些列可以容纳申请表状态的更新,例如 DatePending、DateInProgress、DateCleared、DateCancelled,即 DateInProgress 包含申请表现在经过处理并标记为 In Progress 的日期。所有这些列都在一个表中。

我现在的问题是,如何获取特定状态的日期并将其显示在 Gridview 的最后一列?例如,如果一个申请表被取消,它应该显示记录的状态为取消,并显示它被取消的日期。

输出应该是这样的:

| 应用程序表单 ID | 日期 | 姓名 | 状态 | 状态日期 |

| 12345 | 2013 年 5 月 20 日 |阿尔文 |进行中 | 2013 年 5 月 22 日

| 12346 | 2013 年 7 月 1 日 |玛吉 |清除 | 2013 年 7 月 10 日

| 12347 | 2013 年 7 月 5 日 |罗宾 |取消 | 2013 年 7 月 6 日

如果您还有其他问题/澄清,请随时表达。谢谢。

【问题讨论】:

  • 是的,我有一个……你试过什么?似乎您需要做的就是根据您的状态运行一个 sql 查询并进行设置,但是,如果您什么都没尝试,我看不出问题...
  • 我已经尝试从后面的代码中进行操作,例如获取状态列的内容,如果它是 In Progress,它将从 SQL 表中获取 DateInProgress 列下的相应日期并将其显示在状态日期。问题是,我不知道该怎么做。我正在尝试做的事情可能吗?还是我需要做其他事情?
  • 你在哪里初始化你的数据?你能发布那个代码吗?
  • 我不认为我可以,这是一大段代码,但如果有帮助,系统是一个 3 层架构。数据访问、业务逻辑和表示层

标签: c# asp.net sql gridview


【解决方案1】:

如果我是你,我会改变我的数据库的结构。从长远来看,拥有状态和日期列对您没有帮助。此外,您如何轻松识别哪个是最新状态?您的查询必须非常复杂才能处理。

更好的做法是有一个链接的“状态”表,其结构如下:-

AppFormID <---to join to your form table
StatusType <---Pending, cancelled etc
Status Date <---obvious, really

这样设置会让你的生活轻松很多,并且不会限制你(何时)你决定要创造新的状态。

【讨论】:

  • 状态的数量是固定的,所以不会造成太大的问题。不过,你提出的想法绝对是我最后的手段。
  • 它会让你的生活更轻松——也许不是在短期内移动数据时,但绝对是在你继续的时候,特别是如果你决定在另一个地方改变事情。它还将使您的查询更容易构建。
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2020-05-01
  • 1970-01-01
  • 2019-09-07
  • 2011-05-22
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多