2017-02-21 114 views
0

我是新來asp.net被插入到數據庫表。我試圖在每個月的第一或第二天自動將記錄插入到數據庫表中。自動化過程中使用asp.net

我將將將DateTime.Now記錄被插入其以往一天的記錄。

我見過很多關於如何通過使用視圖和表單做到這一點,但我不知道如何做到這一點沒有這些,只通過在應用自動化來完成。

我的模型和控制器目前如下:

報告模型

namespace CRMReporting.Models 
{ 
    using System; 
    using System.Collections.Generic; 

    public partial class Reports 
    { 
     public int Report_ID { get; set; } 
     public System.DateTime Date { get; set; } 
    } 
} 

報告控制器

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "Report_ID,Date")] Reports reports) 
    { 
     var day = DateTime.Now.Day; 

     if (day == 1||day == 2) 
     { 
      reports.Date = DateTime.Now; 
      db.Reports.Add(reports); 
      db.SaveChanges(); 
      db.Reports.Add(reports); 
     } 

     return View(reports); 
    } 

數據庫表中的REPORT_ID字段是一個自動增量場

Thanks guys guys

+0

爲什麼在兩次插入後都沒有編寫'db.SaveChanges()'? –

回答

0

Asp.net通過請求/響應工作,直到你有一個計時器,什麼都不會自動發生。您可以按用戶請求保存數據。如果你想這一天只發生一次:

var day = DateTime.Now.Day; 
    // To avoid multiple insertion save the last insert date: 
    if (day == 1||day == 2 && DateTime.Now.Date != (DateTime)Application["last_Saved"]) 
    { 
     reports.Date = DateTime.Now; 
     db.Reports.Add(reports); 
     db.SaveChanges(); 
     Application["last_Saved"] = DateTime.Now.Date; 
    } 

但是,如果沒有用戶請求在當天你不會有插入。

作爲一個想法,它似乎你有一個不好的數據庫設計,你可以找到一個更好的方法。