I'm trying to build a simple project that will run my stored procedure .
When I execute the SP through SQL-Server it works fine :
EXECUTE RunSSISPackage1
@folder_name1 = N'SSIS projects',
@project_name1=N'CalculateReports',
@package_name1=N'CalculateReports.dtsx',
@param1 = N'2017-04-01 00:00:00',
@param1name = N'startDate'
My controller:
public IActionResult Test()
{
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
{
cmd.CommandText = "RunSSISPackage";
cmd.CommandType = CommandType.StoredProcedure;
// set some parameters of the stored procedure
cmd.Parameters.Add(new SqlParameter("@package_name1", SqlDbType.NVarChar)
{
Value = "N'CalculateReports.dtsx'"
});
cmd.Parameters.Add(new SqlParameter("@folder_name1", SqlDbType.NVarChar)
{
Value = "N'SSIS projects'"
});
cmd.Parameters.Add(new SqlParameter("@project_name1", SqlDbType.NVarChar)
{
Value = "N'CalculateReports.dtsx'"
});
cmd.Parameters.Add(new SqlParameter("@param1", SqlDbType.NVarChar)
{
Value = "N'2017-04-01 00:00:00'"
});
cmd.Parameters.Add(new SqlParameter("@param1name", SqlDbType.NVarChar)
{
Value = "N'startDate'"
});
if (cmd.Connection.State != ConnectionState.Open)
cmd.Connection.Open();
cmd.ExecuteNonQuery();
return View();
}
}
I'm getting an error :
Cannot access the package or the package does not exist. Verify that the package exists and that the user has permissions to it.
This error occurs when the parameters of package_name\folder_name\project_name
is not sent correctly.
How can I pass prefix values as a parameter?