C# 在SSIS中的脚本任务编辑器中获取错误
我正在尝试将SSIS包从2013年升级到2017年。但是,下面几行代码出现了错误。谁能解决这个问题 我是新来的,所以我还没有尝试过任何东西C# 在SSIS中的脚本任务编辑器中获取错误,c#,sql-server,ssis,etl,script-task,C#,Sql Server,Ssis,Etl,Script Task,我正在尝试将SSIS包从2013年升级到2017年。但是,下面几行代码出现了错误。谁能解决这个问题 我是新来的,所以我还没有尝试过任何东西 using System; namespace ST_3e6cc55d375c472785d01c446ea4bf8b { [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] public partial class ScriptMain :
using System;
namespace ST_3e6cc55d375c472785d01c446ea4bf8b
{
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
public object Now { get; private set; }
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
public void Main()
{
// TODO: Add your code here
Dts.Variables("FileNameCSV").Value = Format(Now, "yyyyMMddHHmmss") + "_MailPieces_" + LTrim(RTrim(Dts.Variables("FrequencyType").Value)) + ".csv";
Dts.Variables("FileNameZIP").Value = Format(Now, "yyyyMMddHHmmss") + "_MailPieces_" + LTrim(RTrim(Dts.Variables("FrequencyType").Value)) + ".zip";
Dts.TaskResult = (int)ScriptResults.Success;
}
}
}
我得到以下这些错误。请帮忙
错误CS1955非可开票成员“ScriptObjectModel.Variables”不能像方法一样使用
错误CS0103当前上下文中不存在名称“Format”
错误CS0103当前上下文中不存在名称“LTrim”
错误CS0103当前上下文中不存在名称“RTrim”
看起来您缺少对DTS运行时程序集的引用。尝试使用块将其添加到
:
using Microsoft.SqlServer.Dts.Runtime;
三项建议:
将Now
替换为DateTime.Now
使用ToString()
而不是Format()
使用Trim()
代替LTrim(RTrim())
请尝试使用以下代码:
使用系统;
名称空间STE6CC55D375C472785D01C446EA4BF8B
{
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
公共部分类ScriptMain:Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
枚举脚本结果
{
Success=Microsoft.SqlServer.Dts.Runtime.dtsesecresult.Success,
Failure=Microsoft.SqlServer.Dts.Runtime.dtsesecresult.Failure
};
公共图书馆
{
//TODO:在此处添加代码
Dts.Variables(“FileNameCSV”).Value=DateTime.Now.ToString(“yyyyMMddHHmmss”)+“_-MailPieces_“+Dts.Variables(“FrequencyType”).Value.ToString().Trim()+”.csv”;
Dts.Variables(“FileNameZIP”).Value=DateTime.Now.ToString(“yyyyMMddHHmmss”)+“_-mailpages_“+Dts.Variables(“FrequencyType”).Value.ToString().Trim()+”.zip”;
Dts.TaskResult=(int)ScriptResults.Success;
}
}
}
我看不出这个脚本在任何版本的SQL Server中是如何工作的。Ltrim和Rtrim不是有效的C#命令。从这条评论开始——首先要做的是确认它是否在旧环境中工作,还要确认它是用VB.Net还是C#编写的。看起来两者都有点像(因此实际上不会运行)@Nick.McDermaid看起来OP使用的是Microsoft.VisualBasic.dll:但我认为不是recommended@TabAlleman如果用户正在使用注释中提到的C#脚本中的Microsoft.VisualBasic.dll
,则应该可以使用此功能above@Yahfoufi也许,但是如果是这样的话,难道就不会有一个使用
指令吗?代码段包含使用系统的代码>没有其他内容。再说一遍,也许这就是问题所在。@Tony可以点击答案左侧的标记,将此答案标记为已接受