【发布时间】:2015-06-02 01:15:15
【问题描述】:
我正在尝试为脚本组件中的其他计算调用 2 个用户变量。
public string getFinYear(DateTime dt)
{
string finYr;
if (dt.Month >= 7 && dt.Month <= 12)
finYr = dt.Year.ToString().Substring(2, 2) + "_" + dt.AddYears(1).Year.ToString().Substring(2, 2);
//finYr = dt.Year.ToString()+ "-" + dt.AddYears(1).Year.ToString();
else
finYr = dt.AddYears(-1).Year.ToString().Substring(2, 2) + "_" + dt.Year.ToString().Substring(2, 2);
//finYr = dt.AddYears(-1).Year.ToString() + "-" + dt.Year.ToString();
return finYr;
}
public void Main()
{
// TODO: Add your code here
Dts.Variables["User::currentDT"].Value = DateTime.Now; // current date time
if (Dts.Variables.Contains("CalYear") == true && Dts.Variables.Contains("CalMonth") == true)
{
int yr = (int)Dts.Variables["CalYear"].Value;
int mth = (int)Dts.Variables["CalMonth"].Value;
DateTime firstDayOfMonth = new DateTime(yr, mth, 1);
Dts.Variables["User::monthName"].Value = firstDayOfMonth.ToString("MMMM", CultureInfo.InvariantCulture);
Dts.Variables["User::finYear"].Value = getFinYear(firstDayOfMonth);
} .....
在上面的代码中,我手动设置了 CalYear = 2015 和 CalMonth = 2;但是,当我运行脚本时,它不会返回 monthName 和 finYear。
有什么想法吗?
【问题讨论】:
-
检查您是否将这些变量标记为脚本任务的“读写变量”。
-
谢谢,是的,我都勾选了。其实传递那些系统变量很容易,但是对于用户变量来说,就有点烦了
标签: ssis