如何在控制器内执行批量插入存储过程

时间:2017-08-30 11:29:56

标签: sql-server asp.net-mvc database asp.net-mvc-4 stored-procedures

我已经为这样的批量插入编写了一个存储过程:

USE [BRDCEP_MIS]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc dbo.SP_BulkInsertPsc
as
begin
BULK INSERT BrdcepPscData 
FROM  'E:\BRDCEP_MIS\BRDCEP_MIS\App_Data\PSC\NRSP.csv'
WITH 
( 
     FIRSTROW = 2 ,
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
)
end
GO

我希望在我调用控制器中的特定功能时执行此SP,它显示没有错误,但它也没有将数据添加到数据库中。我的控制器功能是:

[HttpGet]
public ActionResult ImportPSCData()
{
    using (ApplicationDbContext db = new ApplicationDbContext())
    {
        db.Database.ExecuteSqlCommand("TRUNCATE TABLE BrdcepPscData");
        var a = db.Database.SqlQuery<int>("Sp_BulkInsertPsc");
    }

    return View();
}

任何人都能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试将数据作为一次性上传到SQL服务器,则可以使用Sql Server Import Wizard

如果您要创建具有批量上传功能的应用程序,则可以使用Bulk Copy Class。这允许您将SQL数据库中的列映射到.CSV文件。