我必须将2个平面文件加载到SQL Server表中。平面文件将加载到文件夹中。它有数千个其他文件。如果它是具有不同日期的同一文件,我会使用foreach循环并完成它。但这是场景。
我要加载的文件名如下:
Payment_Stat_Data1_12_2017.txt
每天加载文件
还有许多其他文件,其中一些是Payment_Stat_Data
或Non_Payment_Stat_Data
,最后没有日期部分。我们不想将这些加载到表中。
我尝试使用脚本任务c#代码,它给了我最新的文件但不是我们想要加载的文件。
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;
namespace ST_2650e9fc7f2347b2826459c2dce1b5be.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
#region VSTA generated code
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
public void Main()
{
// TODO: Add your code here
var directory= new DirectoryInfo(Dts.Variables["User::VarFolderPath"].Value.ToString());
FileInfo[] files = directory.GetFiles();
DateTime lastModified = DateTime.MinValue;
foreach (FileInfo file in files)
{
if (file.LastWriteTime > lastModified)
{
lastModified = file.LastWriteTime;
Dts.Variables["User::VarFileName"].Value = file.ToString();
}
}
MessageBox.Show(Dts.Variables["User::VarFileName"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
}
}
来源:http://www.techbrothersit.com/2013/12/ssis-how-to-get-most-recent-file-from.html
代码可以工作,但会提供另一个最新的平面文件..我只想提取Non_Payment_Stat_Data1_12_2017.txt
和Payment_Stat_Data1_12_2017.txt
个文件。他们每天都会改变日期。