你能在这个 foreach 循环中看到任何会让它执行两次的东西吗?



这是来自工作流程的"伪代码",我希望它比xaml或设计视图更具可读性。顶部的foreach 循环"foreach (dataSetTables[0] 中的 DataRow row as Enumerable((("似乎执行了两次。至少 2 个 Rest 调用和其中包含的数据库插入操作发生了两次。我不知道为什么一个foreach会执行两次。

drpQryStr = "very long query string"
dataSet = new DataSet()
dataSet = ExecuteQuery
if dataSet.Tables[0].Rows.Count > 0
foreach (DataRow row in dataSetTables[0] as Enumerable())
iter = 0
dict = new Dictionary<string, string>()
lst = new List<char>()
newDict = new Dictionary<string, string>()
sb = new StringBuilder()
Do
dict.Add(row.Table.Columns[iter].ColumnName, row[row.Table.Columns[iter].ColumnName].ToString())
iter ++
While(iter < row.Table.Columns.Count)
foreach (KeyValuePair kv in dict)
if(kv.Key == "DOB" || kv.Key == "LOB")
newDict.Add(kv.Key, kv.Value)
else
strKey = kv.Key
strCaseCorrected = strKey.ToLower()
aChars = strCaseCorrected.ToCharArray()
lst.Clear()
sb.Clear()
lst.AddRange(aChars)
itr2 = 0
Do
if(itr2 == 0)
lst[itr2] = Char.ToUpper(lst[itr2])
else
if(lst[itr2] == '_')
itr2 ++
lst[itr2] = Char.ToUpper(lst[itr2])
else
if(lst.Count - itr2 == 1)
if(lst[itr2] == 'd')
if(lst[itr2 - 1] == 'I')
lst[itr2] = 'D'
itr2 ++
While(itr2 < lst.Count)
foreach(Char c in lst)
sb.Append(c.ToStrng()
newDict.Add(sb.ToString(), kv.Value)
dict = newDict
dict[Communiction_Date] = dict["Communication_Date"].Insert(4, "-").Insert(7, "-")
strJson = JsonConvert.SerializeObject(dict, Formatting.None)
today = DateTime.Now.ToString("MM-dd-yyyy HH:mm:ss")
Invoke a Rest Service that posts this json to a sqlless DB
eventStr = "a large string that likely doesn't cause the problem"
ctdbObj = JObject.Parse(eventStr)
Invoke aRest Service that Posts an event to a sqlless DB
cts_id = dict["External_Source_ID"]
strInsert = "sql insert statement"
Execute Insert statement
SendResponse

是的,我也不能,我认为sql查询可能运行时间太长,并且在完成执行之前再次调用工作流。认为这已关闭。

最新更新