【问题标题】:How to execute Bulk Insert Stored Procedure inside Controller如何在控制器中执行批量插入存储过程
【发布时间】:2018-02-08 02:21:51
【问题描述】:

我已经为批量插入编写了一个存储过程,如下所示:

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();
}

谁能告诉我我做错了什么?

【问题讨论】:

  • 'E:\BRDCEP_MIS\BRDCEP_MIS\App_Data\PSC\NRSP.csv' 是本地机器的路径吗?
  • 是的,当我将它作为简单查询运行时它工作正常,它不会给出任何错误

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 2011-05-02
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多