Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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# 每个行的PostExecute()输出缓冲区_C#_Ssis_Script Component - Fatal编程技术网

C# 每个行的PostExecute()输出缓冲区

C# 每个行的PostExecute()输出缓冲区,c#,ssis,script-component,C#,Ssis,Script Component,我在SSIS中的脚本组件中有以下代码 我试图反序列化JSON输出并将响应输出到数据库 反序列化部分正在返回响应 但是,我得到的“对象引用”未设置为实例 OutputBuffer.AddRow()上的错误 我在兜圈子。我做错了什么 public class ScriptMain : UserComponent { public override void PostExecute() { base.PostExecute(); string vO

我在SSIS中的脚本组件中有以下代码

我试图反序列化JSON输出并将响应输出到数据库

反序列化部分正在返回响应

但是,我得到的“对象引用”未设置为实例 OutputBuffer.AddRow()上的错误

我在兜圈子。我做错了什么

public class ScriptMain : UserComponent
{

   public override void PostExecute()
    {
        base.PostExecute();

        string vOpportunityURL = Variables.pardotopportunityurl;
        System.Windows.Forms.MessageBox.Show(vOpportunityURL);

        int vMaxOpportunityId = Variables.pardotopportunitymaxid;
        System.Windows.Forms.MessageBox.Show(Convert.ToString(vMaxOpportunityId));

        int vProcessedRecordCount = Variables.pardotrecordcnt;
        System.Windows.Forms.MessageBox.Show(Convert.ToString(vProcessedRecordCount));

        var vProcessDate = Variables.pardotprocessdt;
        System.Windows.Forms.MessageBox.Show(Convert.ToString(vProcessDate));

        RootObject oppOutputResponse = GetWebServiceResult(vOpportunityURL);

        foreach (Opportunity op in oppOutputResponse.result.opportunity)
        {

            OpportunityDataBuffer.AddRow();
            OpportunityDataBuffer.ID = op.id;
            System.Windows.Forms.MessageBox.Show(Convert.ToString(op.id));
            OpportunityDataBuffer.Name = op.name;
            System.Windows.Forms.MessageBox.Show(Convert.ToString(op.name));

        }


    }


    private RootObject GetWebServiceResult(string vOpportunityURL)
    { 
        // Create API WEeb Service Request

        HttpWebRequest opportunityFullDataReq = (HttpWebRequest)WebRequest.Create(vOpportunityURL);

        var opportunityDataPostStr = "user_key=";
            opportunityDataPostStr += Variables.pardotauthusrkey;
            opportunityDataPostStr += "&api_key=";
            opportunityDataPostStr += Variables.pardotapikey;
            opportunityDataPostStr += "&output=full";
            opportunityDataPostStr += "&format=json";
            opportunityDataPostStr += "&sort_by=id";
            opportunityDataPostStr += "&sort_order=ascending";
            opportunityDataPostStr += "&id_greater_than=";
            opportunityDataPostStr += Variables.pardotopportunitymaxid;

            System.Windows.Forms.MessageBox.Show(Convert.ToString(opportunityDataPostStr));
            System.Windows.Forms.MessageBox.Show(vOpportunityURL + Convert.ToString(opportunityDataPostStr));

        var opportunityPostStream = Encoding.ASCII.GetBytes(opportunityDataPostStr);

        opportunityFullDataReq.Method = "POST";
        opportunityFullDataReq.ContentType = "application/x-www-form-urlencoded";
        opportunityFullDataReq.ContentLength = opportunityPostStream.Length;

        using(var opportunityStream = opportunityFullDataReq.GetRequestStream())
        {
            opportunityStream.Write(opportunityPostStream, 0, opportunityPostStream.Length);
        }

        // Capture Web Service Respose

        HttpWebResponse opportunityFullDataResponse = (HttpWebResponse)opportunityFullDataReq.GetResponse();

        RootObject opportunityWSResponse = null;

        Stream opportunityJsonStream = opportunityFullDataResponse.GetResponseStream();
        string wsResponseString = null;

        using (StreamReader wsResponseReader = new StreamReader(opportunityJsonStream))
        {
            wsResponseString = wsResponseReader.ReadToEnd();
            wsResponseReader.Close();
        }

        JavaScriptSerializer wsResponseJson = new JavaScriptSerializer();

        //var serialJsonResponseString = wsResponseJson.Serialize(wsResponseString);
        System.Windows.Forms.MessageBox.Show(wsResponseString.ToString());

        opportunityWSResponse = wsResponseJson.Deserialize<RootObject>(wsResponseString);

        return opportunityWSResponse;
   }
public类ScriptMain:UserComponent
{
公共重写void PostExecute()
{
base.PostExecute();
字符串vOpportunityURL=Variables.pardotportunityurl;
System.Windows.Forms.MessageBox.Show(vOpportunityURL);
int-vMaxOpportunityId=Variables.pardotopportunitymaxid;
System.Windows.Forms.MessageBox.Show(Convert.ToString(vMaxOpportunityId));
int vProcessedRecordCount=Variables.pardoRecordCnt;
Show(Convert.ToString(vProcessedRecordCount));
var vProcessDate=Variables.pardotprocessdt;
System.Windows.Forms.MessageBox.Show(Convert.ToString(vProcessDate));
RootObject oppOutputResponse=GetWebServiceResult(vOpportunityURL);
foreach(Opportunity op in Opportunity OutputResponse.result.Opportunity)
{
OpportunityDataBuffer.AddRow();
OpportunityDataBuffer.ID=op.ID;
System.Windows.Forms.MessageBox.Show(Convert.ToString(op.id));
OpportunityDataBuffer.Name=op.Name;
System.Windows.Forms.MessageBox.Show(Convert.ToString(op.name));
}
}
私有根对象GetWebServiceResult(字符串vOpportunityURL)
{ 
//创建API WEeb服务请求
HttpWebRequest opportunityFullDataReq=(HttpWebRequest)WebRequest.Create(vOpportunityURL);
var opportunityDataPostStr=“user_key=”;
opportunityDataPostStr+=Variables.pardoAuthusRkey;
opportunityDataPostStr+=”&api_key=“;
opportunityDataPostStr+=Variables.pardotapikey;
opportunityDataPostStr+=“&output=full”;
opportunityDataPostStr+=“&format=json”;
opportunityDataPostStr+=“&sort_by=id”;
opportunityDataPostStr+=“&sort\u order=升序”;
opportunityDataPostStr+=”&id_大于“”;
opportunityDataPostStr+=Variables.pardotopportunitymaxid;
Show(Convert.ToString(opportunityDataPostStr));
System.Windows.Forms.MessageBox.Show(vOpportunityURL+Convert.ToString(opportunityDataPostStr));
var opportunityPostStream=Encoding.ASCII.GetBytes(opportunityDataPostStr);
opportunityFullDataReq.Method=“POST”;
opportunityFullDataReq.ContentType=“应用程序/x-www-form-urlencoded”;
opportunityFullDataReq.ContentLength=opportunityPostStream.Length;
使用(var opportunityStream=opportunityFullDataReq.GetRequestStream())
{
写入(opportunityPostStream,0,opportunityPostStream.Length);
}
//捕获Web服务响应
HttpWebResponse opportunityFullDataResponse=(HttpWebResponse)opportunityFullDataReq.GetResponse();
RootObject opportunityWSResponse=null;
Stream opportunityJsonStream=opportunityFullDataResponse.GetResponseStream();
字符串wsResponseString=null;
使用(StreamReader wsResponseReader=新的StreamReader(opportunityJsonStream))
{
wsResponseString=wsResponseReader.ReadToEnd();
wsResponseReader.Close();
}
JavaScriptSerializer wsResponseJson=新的JavaScriptSerializer();
//var serialJsonResponseString=wsResponseJson.Serialize(wsResponseString);
System.Windows.Forms.MessageBox.Show(wsResponseString.ToString());
opportunityWSResponse=wsResponseJson.Deserialize(wsResponseString);
返回机会WSResponse;
}