2017-02-21 44 views
0

Я новичок в asp.net. Я пытаюсь автоматизировать вставку записи в таблицу базы данных каждый 1 или 2 месяца.автоматизировать процесс записи в таблицу базы данных с помощью 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 поле для таблицы базы данных является авто- поле приращения

Спасибо, ребята

+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; 
    } 

Но если нет запросов пользователей в день вы не будете иметь вставку.

И, как кажется, у вас плохой дизайн базы данных, и вы можете найти лучший способ.