#c# #sql-server #excel #ssis
Вопрос:
Я столкнулся с задачей, когда мне нужно использовать SSIS для экспорта данных из MS Excel в базу данных MS SQL. Я создал простую форму с кнопкой на C#. Сейчас я проверяю эту штуку.
DTSX работает и создает данные в базе данных. Форма — я не знаю. Поскольку я запускаю его, нажмите кнопку, чтобы запустить загрузку, и получите только результат загрузки пакета как «Сбой«.
Мой вопрос касается подробных журналов результатов загрузки? Как определить проблему загрузки пакетов?
namespace ExcelEDM
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static void VerifyDir(string path)
{
try
{
DirectoryInfo dir = new DirectoryInfo(path);
if (!dir.Exists)
{
dir.Create();
}
}
catch {}
}
public static void Logger(string lines)
{
string path = "C:/Log/";
VerifyDir(path);
string fileName = DateTime.Now.Day.ToString() DateTime.Now.Month.ToString() DateTime.Now.Year.ToString() "_Logs.txt";
try
{
System.IO.StreamWriter file = new System.IO.StreamWriter(path fileName, true);
file.WriteLine(DateTime.Now.ToString() ": " lines);
file.Close();
}
catch (Exception) { }
}
private void RunExport_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
// Instantiate SSIS application object
Microsoft.SqlServer.Dts.Runtime.Application myApplication = new Microsoft.SqlServer.Dts.Runtime.Application();
// Load package from file system (use LoadFromSqlServer for SQL Server based packages)
LabelStatus.Text = "Loading data from Microsoft Excel file...";
Package myPackage = myApplication.LoadPackage(@"C:Usersh152141sourcereposISPISPPackage.dtsx", null);
Logger("Loading data from Microsoft Excel file...");
// Optional set the value from one of the SSIS package variables
// Execute package
LabelStatus.Text = "Executing package";
Logger("Executing package");
DTSExecResult myResult = myPackage.Execute();
// Show the execution result
LabelStatus.Text = "Package result: " myResult.ToString() " " myPackage.Description;
Logger(myResult.ToString());
}
}
}
Комментарии:
1. Вероятно, не связанные: 1. Не оставляйте блоки catch пустыми. 2. Не сворачивайте пользовательское ведение журнала. Существует множество замечательных простых в использовании фреймворков ведения журнала.