如何每次在for循环中调用存储过程并将结果存储在数据库中

时间:2014-01-27 11:44:45

标签: asp.net-mvc database stored-procedures

您好我正在研究ASP.NET MVC项目。这是我的代码:

        string[] dt1;
            for (int ic = 0; ic < dt.Count() - 1; ic++)
            {
             dt1 = new string[3];
             dt1 = dt[ic].Split('|');

           var date = Convert.ToDateTime(dt1[0].Substring(0, dt1[0].IndexOf("GMT")).Trim()).ToShortDateString();
           var time = Convert.ToDateTime(dt1[0].Substring(0, dt1[0].IndexOf("GMT")).Trim()).ToShortTimeString();
          //Calling Stroed Procedure
        var schedulesp = orderdata.uspApp_InsertScheduler(Convert.ToInt32(outputresults), newid, Name, Convert.ToDateTime(date),time);
                orderdata.SaveChanges();

            }

这里我循环了日期和时间。每当我遍历日期和时间时,我需要插入新记录,这是我需要插入记录的5倍。

但是当我运行上面的代码时,它总是只保存最后的结果,即第5个结果。

那么如何将所有结果保存到我的数据库中?

更新:这是商店程序代码:

     ALTER PROCEDURE [dbo].[uspApp_InsertScheduler]


@ID int = 0,
@UserID int = 0,
@ReportName nvarchar(50) = 0,
@ScheduleStartDate date,
@SchedulestartTime nvarchar(10) = 0

          AS
         BEGIN


IF EXISTS (SELECT * FROM App_ReportsScheduler where id = @ID )
BEGIN 
UPDATE App_ReportsScheduler
SET 
reportName = @ReportName, schedule_StartDate = @ScheduleStartDate, schedule_starttime = @SchedulestartTime
where id = @ID
END
ELSE
BEGIN
  INSERT INTO App_ReportsScheduler (ID, UserID, reportName,schedule_StartDate,schedule_starttime)
values ( @ID, @UserID,@ReportName,@ScheduleStartDate,@SchedulestartTime)
END
END 
     GO

1 个答案:

答案 0 :(得分:0)

只需输入orderdata.SaveChanges();在你的循环外面。