脚本任务SSIS

时间:2019-05-08 21:02:37

标签: c# ssis

我有一个名为User::EntryData的字符串类型的脚本任务变量,并且在C#中有一个字符串值(Dictionary)到Entry date SSIS变量,我正在尝试使用foreach变量将其传递给Foreach循环枚举器枚举器,并遍历变量中的所有元素。

但是它显示以下错误: 分配给变量User::EntryData的值(Char)的类型不同于当前变量类型(String)。变量在执行期间可能不会更改类型。变量类型是严格的,除了Object.Code类型的变量

有人可以帮助我,让我知道是什么问题吗?

代码

String Host = "http://hq-pcm-imstest:9090";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(Host);
client.DefaultRequestHeaders.Add("Username", Environment.UserName);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string Url = Host + "/api/entry?repoId=271";
var Response = client.GetAsync(Url).Result;

if (Response.IsSuccessStatusCode)
{
    var content = Response.Content.ReadAsStringAsync().Result;
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    FormResponse<FormEntry> resp = serializer.Deserialize<FormResponse<FormEntry>>(content);
    if(resp==null)
    {
        throw new Exception("response was null");
    }

    if (resp.ResponseData != null )
    {
        using (var connection = new SqlConnection("Server =hq-dev-sqldw01 ; Database = DW_STAGE; Trusted_Connection = True"))
        {
            connection.Open();
            //string commandtext = "CREATE TABLE #tempdata (ID,SubmitterName,TimeSubmitted,IsArchived,IsDeleted,EntryData)";
            string commandtext = "INSERT INTO TestResponse (ID,SubmitterName,TimeSubmitted,IsArchived,IsDeleted,EntryData) VALUES(@ID,@SubmitterName,@TimeSubmitted,@IsArchived,@IsDeleted,@EntryData) ";

            foreach (FormEntry entry in resp.ResponseData)
            {
                SqlCommand command = new SqlCommand();
                command.Connection = connection;
                command.CommandText = commandtext;
                command.Parameters.AddWithValue("@ID",entry.Id);
                command.Parameters.AddWithValue("@SubmitterName",entry.SubmitterName);
                command.Parameters.AddWithValue("@TimeSubmitted",entry.TimeSubmitted);
                command.Parameters.AddWithValue("@IsArchived",entry.IsArchived);
                command.Parameters.AddWithValue("@IsDeleted",entry.IsDeleted);
                command.Parameters.AddWithValue("@EntryData",serializer.Serialize(entry.EntryData));
                command.ExecuteNonQuery();
                String showdata = serializer.Serialize(entry.EntryData);
                Dts.Variables["User::EntryData"].Value = showdata.ToString();
            }

0 个答案:

没有答案
相关问题