当我从C#调用存储过程时,它会抛出异常

时间:2016-09-28 07:26:17

标签: c# sql sql-server

CREATE PROCEDURE GetDatabaseBackup
AS
BEGIN
    DECLARE @MyFileName varchar(1000)

    SELECT 
       @MyFileName= 'D:\DATABASE-BACKUP\genxMultiERPLive -' +      
              REPLACE(convert(nvarchar(20),GetDate(),120),':','-') + '.bak'

    BACKUP DATABASE genxMultiERPLive 
    TO DISK = @MyFileName   
END
GO

这是我的存储过程。当我执行此存储过程时,它工作正常。当我在C#代码中使用数据库对象调用时,它会引发异常。

public bool DataBaseBackup()
{
    int obj = _dbContext.GetDatabaseBackup();

    if (obj != 0)
    {
        return true;
    }

    return  false;
} 

_dbContext是我的数据库的对象。

例外是:

  

无法在交易中执行备份或恢复操作   BACKUP DATABASE异常终止。

1 个答案:

答案 0 :(得分:1)

您应该从

更改调用存储过程的行

int obj= _dbContext.GetDatBaseBackup();

_dbContext.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction,"GetDatBaseBackup");