Вот то, что я пытаюсь достичь здесь:
- Получить список имен файлов и идентификаторов из базы данных
- Поиск этих файлов по сетевому пути
- Сохранение любых идентификаторов файлов, не найденных
- Поиск этого идентификатора во второй базе данных
- Поиск этих файлов по сетевому пути
- Список всех идентификаторов, гдефайлы не найдены ни в одном месте.
Проблема, с которой я сталкиваюсь, пытается использовать имена файлов из результатов, которые я собрал.
При запуске кода необработанные данные JSONСобранные из базы данных отображаются, однако, при попытке перечислить только имена файлов, я ничего не получаю (даже ошибка)
Любые идеи о том, как это исправить и перечислить имена файлов таким образом, чтомне искать их позже?Или есть лучший способ сделать это?
Также обратите внимание: из-за используемой версии сервера SQL, я должен использовать FOR XML, поскольку FOR JSON не совместим.
РЕДАКТИРОВАТЬ: Используя код, предоставленный Prany, я теперь могу вывести только имя аудиофайла, но при этом я пытаюсь также вывести sCallId. У меня проблема с дублированием (см. Вывод ниже):
Getting Calls
2016\03\30\300320161614210106361-00000934412405.asf--84377-3668343241-514513
2016\03\30\300320161614210106361-00000934412405.asf--84385-3668343557-255773
2016\03\30\300320161614210106361-00000934412405.asf--84392-3668344445-516453
2016\03\30\300320161614210106361-00000934412405.asf--85000-3668749568-733799
2016\03\30\300320161614210106361-00000934412405.asf--85604-3668872399-722313
2016\03\30\300320161620220106362-00000934052048.asf--84377-3668343241-514513
2016\03\30\300320161620220106362-00000934052048.asf--84385-3668343557-255773
2016\03\30\300320161620220106362-00000934052048.asf--84392-3668344445-516453
2016\03\30\300320161620220106362-00000934052048.asf--85000-3668749568-733799
2016\03\30\300320161620220106362-00000934052048.asf--85604-3668872399-722313
2016\03\30\300320161634220106363-00000933211384.asf--84377-3668343241-514513
2016\03\30\300320161634220106363-00000933211384.asf--84385-3668343557-255773
2016\03\30\300320161634220106363-00000933211384.asf--84392-3668344445-516453
2016\03\30\300320161634220106363-00000933211384.asf--85000-3668749568-733799
2016\03\30\300320161634220106363-00000933211384.asf--85604-3668872399-722313
2016\04\04\040420160908190106389-00000527974488.asf--84377-3668343241-514513
2016\04\04\040420160908190106389-00000527974488.asf--84385-3668343557-255773
2016\04\04\040420160908190106389-00000527974488.asf--84392-3668344445-516453
2016\04\04\040420160908190106389-00000527974488.asf--85000-3668749568-733799
2016\04\04\040420160908190106389-00000527974488.asf--85604-3668872399-722313
2016\04\05\050420161913220106406-00000405271715.asf--84377-3668343241-514513
2016\04\05\050420161913220106406-00000405271715.asf--84385-3668343557-255773
2016\04\05\050420161913220106406-00000405271715.asf--84392-3668344445-516453
2016\04\05\050420161913220106406-00000405271715.asf--85000-3668749568-733799
2016\04\05\050420161913220106406-00000405271715.asf--85604-3668872399-722313
Ниже приведен код, который я сейчас использую, чтобы попытаться это сделать.
//Run the SQL and wrap the output in results tags to fix Multiple Root Elements error.
string liveXML = "<results>" + cmd2.ExecuteScalar().ToString() + "</results>";
//Create new XML Document
XmlDocument LiveDoc = new XmlDocument();
LiveDoc.LoadXml(liveXML);
//Conver XML to JSON
sjsonLive = JsonConvert.SerializeXmlNode(LiveDoc);
//Output RAW JSON
txtOut.AppendText("\r\n" + sjsonLive);
//Parse JSON into an Array
var files = JObject.Parse(sjsonLive);
//We want to run this values in a files seach, but for now let's print it to txtOut
foreach (var f in files.SelectTokens("$..calls..@audioFileName"))
foreach (var c in files.SelectTokens("$..calls..@sCallID"))
{
txtOut.AppendText("\r\n" + f.ToString() + " - " + c.ToString());
//Conduct File Search Here...
}
Пример данных JSON:
{
"results": {
"calls": [{
"@audioFileName": "2016\\03\\30\\300320161614210106361-00000934412405.asf",
"@sCallID": "84377-3668343241-514513"
}, {
"@audioFileName": "2016\\03\\30\\300320161620220106362-00000934052048.asf",
"@sCallID": "84385-3668343557-255773"
}, {
"@audioFileName": "2016\\03\\30\\300320161634220106363-00000933211384.asf",
"@sCallID": "84392-3668344445-516453"
}, {
"@audioFileName": "2016\\04\\04\\040420160908190106389-00000527974488.asf",
"@sCallID": "85000-3668749568-733799"
}, {
"@audioFileName": "2016\\04\\05\\050420161913220106406-00000405271715.asf",
"@sCallID": "85604-3668872399-722313"
}
]
}
}