À l'aide du package SSIS, je génère ExcelSheet en tant que sortie. J'appelle le paquet de SSIS par le code de source de C#. Actuellement je sauve le dossier en tant que: pkgTR.Variables ["dPath"]. Value = @ "c: \" + sFileName;Enregistrement dynamique de la sortie du package SSIS
Nous voulons la fonction Enregistrer sous pour l'utilisateur final - Qui décide d'enregistrer le fichier soit sur C: \ ou D: \ ou où il veut enregistrer le fichier.
try
{
string pkgTRPath = @"C:\Reports\SSISPackages\GenerateTransactionReport.dtsx";
Package pkgTR;
Microsoft.SqlServer.Dts.Runtime.Application app;
DTSExecResult pkgResults;
app = new Microsoft.SqlServer.Dts.Runtime.Application();
pkgTR = app.LoadPackage(pkgTRPath, null);
pkgTR.Variables["sConn"].Value = System.Configuration.ConfigurationManager.AppSettings["SSISConn"];
pkgTR.Variables["sDate"].Value = txtFromDate.Text;
pkgTR.Variables["eDate"].Value = txtToDate.Text;
pkgTR.Variables["sSortCode"].Value = drpSortCode.SelectedValue.TrimEnd();
string sFileName = "TransactionReport_" + drpSortCode.SelectedValue.TrimEnd() + ".xls";
pkgTR.Variables["dPath"].Value = @"c:\" + sFileName;
pkgResults = pkgTR.Execute();
var reportID = drpSortCode.SelectedValue.TrimEnd();
if (pkgTR.ExecutionResult.ToString() == "Success")
{
Response.Write(String.Format(@"<script language=javascript>alert('Excel Report for {0} is Generated');</script>", reportID));
}
else if (pkgTR.ExecutionResult.ToString() == "Failure")
{
Response.Write("<script language=javascript>alert('Failure:Unable to generate report!!');</script>");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Cela semble bon avec moi, mais .. tout exemple de code ?? – goofyui