Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SSIS中的脚本任务编辑器中获取错误_C#_Sql Server_Ssis_Etl_Script Task - Fatal编程技术网

C# 在SSIS中的脚本任务编辑器中获取错误

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 :

我正在尝试将SSIS包从2013年升级到2017年。但是,下面几行代码出现了错误。谁能解决这个问题

我是新来的,所以我还没有尝试过任何东西

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可以点击答案左侧的标记,将此答案标记为已接受