数据库中的ASP.NET DateTime列在页面加载时设置为当前日期

时间:2017-06-19 17:09:40

标签: asp.net sql-server datetime

我试图解决在导航到ASP.NET网站中的页面时设置数据库列的问题。这是一个报价管理Web应用程序,当打开报价并导航到某个页面时,"到期日期"自动更新到当前日期。我已经验证在触发ascx.cs文件中的Page_Load函数之前发生了这种情况。我试图在此之前跟踪正在运行的内容,但我担心我对ASP.NET的了解不足,而且我不确切知道在哪里查看。从我可以告诉的部分先前运行(例如,aspx.cs文件),我没有看到任何迹象表明对记录的任何改动。

当我深入挖掘时,似乎在编辑报价时离开主要登录页面时变化正在加快。如果我更新值并前往报价的任何页面(主页除外),它将保持不变。我可以前往主页面,检查数据库中的记录,它保持不变。但似乎只要我从该主页导航,过期日期将更改为当前日期。有什么地方我可以查看是否发生了什么?

- 编辑 -

也许详细的行动清单可能会有所帮助......

  1. 查看系统
  2. 中的引号列表
  3. 点击"编辑"报价链接
  4. 查看"引用详情"页面,编辑访问时的第一页
  5. 查看数据库查询以查看exp日期仍然正确 值
  6. 点击"报价选项"导航链接
  7. 请参阅"报价选项"现在已变为现在 日期
  8. 检查数据库查询以查看未执行已知保存的情况 数据库中exp日期值已在数据库中更新
  9. 执行更新以引用以重置exp日期
  10. 在报价编辑中查看任何其他页面,返回"选项",请参阅exp 日期未从重置值
  11. 再次更改
  12. 使用数据库查询验证正确的日期
  13. 重温"细节"页
  14. 再次验证数据库查询的正确日期
  15. 前往任何其他页面,然后前往"选项",或直接前往  到"选项",看到exp日期已更改为当前日期
  16. 这是所用链接上的HTML,在其他页面上似乎相同......

    <a class="tabOff" id="ContentPlaceHolder1_linkButtonAddEditShipping" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl00$ContentPlaceHolder1$linkButtonAddEditShipping", "", true, "", "", false, true))'>Quote Options</a>
    

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。有点。我确实发现在离开“详细信息”页面时正在触发保存功能,即使没有明确激活任何保存操作。通过在函数开头从数据库获取到期日期来解决问题,如果设置了一个,则在函数的最后将该值推回。虽然这实际上阻止了值被“覆盖”,但我仍然无法确定为什么触发了保存功能,并且无法确定该函数中的哪些操作将值设置为当前日期