我有一个名为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();
}