简体   繁体   中英

SSIS Script Task - input string was not in a correct format

I have a very very strange issue going on with SSIS and wanted to know if anyone else has had something similar.

In a Data Flow I have a Source that gets data from a MSSQL table and then feeds it to a data transformation Script Task.

The script task is as follows:

Script Task

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    string SecurityHeader = (string)Variables.SecurityHeader;
    string APIToken = (string)Variables.APIToken;
    var AppFormID = (string)Row.AppFormID;
    var AppClassName = (string)Row.AppClassName;
    var Lat = Row.Latitude;
    var Long = Row.Longitude;

    var data = new
    {
        record = new
        {
            status = Row.Status.ToString(),
            latitude = Row.Latitude,
            longitude = Row.Longitude,
            form_values = new Dictionary<string, string>()
        }
    };

    if (Row.CreatedBy_IsNull == false) { data.record.form_values["1a09"] = Row.CreatedBy.ToString(); }

    string jsonstring = JsonConvert.SerializeObject(data);
    var client = new RestClient(AppURLRef);
    var request = new RestRequest(Method.POST);
    request.AddHeader(SecurityHeader, APIToken);
    request.AddHeader("content-type", "application/json");
    request.AddParameter("application/json", jsonstring, ParameterType.RequestBody);

    try
    {
        IRestResponse dataresponse = client.Execute(request);
        if (dataresponse.StatusCode.ToString() == "Created")
        {
            var listobject = JsonConvert.DeserializeObject<Lists>(dataresponse.Content);
        }
        else
        {
            Row.OErrorMsg = dataresponse.ErrorMessage.ToString();
        };
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message + "  Data: " + ex.Data + "   Inner Exception:  " + ex.InnerException);
    }
}

The Issue

When I run this without any break points I get a Message Box with the error "Input string was not in correct format"

Where this gets really weird is that when I put a break point in the code works perfectly, thus making getting a line error impossible.

Has anyone ever come across an issue like this before and if so how did you fix it?

Update

After following some advice I moved the try catch block up to the start of the script, this resulted in no change the try catch block was never hit.

I attempted to but a MessageBox.Show("") at the very top of the input process row and again this was not hit. Something is happening at a higher level than both of these thought I am unable to find out where or how this is occurring.

Again to reiterate the error is in a MessageBox, not in the output and nothing gets logged in the process tab. So this means no line numbers, no useful error messages that discusses where this error is occurring.

I managed to solve this, after commenting EVERYTHING out and removing all of the input columns the error was still occurring.

I put it down to another way Microsoft wants to punish me, I copied the code deleted the script task, added a new script task and copied the old code back in. Worked perfectly...

Thanks Microsoft!!

Put delay in catch block in next line to MessageBox.Show

you able to view message box .

Some time message box goes in back ground ( USe ALT +TAB to find it).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM