【问题标题】:How to call a simple stored procedure in ASP.NET Core 2.0 MVC如何在 ASP.NET Core 2.0 MVC 中调用一个简单的存储过程
【发布时间】:2019-10-24 02:51:08
【问题描述】:

我只想从 ASP.NET Core 2.0 MVC 调用存储过程。

我多次看到这种类型的问题,但每个问题都包含一些参数或由单个表调用任何参数。

但没有什么对我有用。

因为我只想调用存储过程,所以整个函数将仅由存储过程完成。

但我不知道如何通过控制器调用特殊的存储过程。

这是我的存储过程:

create procedure dbbackup
    @BackupSQLScript nvarchar(max),
    @SQLBackupFileName nvarchar(max),
    @DatabaseName sysname,
    @SQLBackupFolder nvarchar(400)
as 
begin
    set @DatabaseName = 'SQL Database'
    set @SQLBackupFolder = 'D:\'

    set @SQLBackupFileName = replace(@DatabaseName, ' ', '-') + convert(varchar, getdate(), 112) + '.bak'

    set @BackupSQLScript = 'BACKUP DATABASE [' + @DatabaseName + ']
                            TO DISK = ''' + @SQLBackupFolder + @SQLBackupFileName + ''''

    print @BackupSQLScript

    exec sp_executesql @BackupSQLScript
end

我只是从控制器调用这个存储过程。

【问题讨论】:

  • 您使用什么来连接数据库(即实体框架、Dapper 等)?你试过什么?您发布了 SQL,但没有发布任何 C# 代码。

标签: c# sql-server stored-procedures asp.net-core-mvc .net-core-2.0


【解决方案1】:

首先创建一个主体为空的类,但 .Net Core 可能会抱怨该类没有主键,因此您可以添加一个用 [Key] 装饰的属性

public class simple {
  [Key]
  public int nothing {get; set;}
}

然后在您的 dbContext 类中将其添加到您的 DbSet 声明中

public virtual DbSet<simple> Simple { get; set; }

然后在您的控制器中,您只需执行此操作

public IActionResult SimpleProcedure()
{
   var q = dbcontext.Simple.FromSql("exec dbBackup");
   return OK(q);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2018-06-21
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2018-07-30
    • 2021-05-03
    相关资源
    最近更新 更多