Итак, я ЗНАЮ, что это простая вещь, но я обычно работаю с ASP. NET веб-приложениями и SQL, поэтому у меня возникла проблема с этим консольным приложением.
У меня есть консольное приложение, которое извлекает «страницу» данных из вызова API веб-клиента. Это вытягивает данные в строку (и) и записывает эти данные в файл CSV. Затем метод зацикливается, увеличивая «pagenum» на +1, пока API не вернет строку «Записи не найдены».
Моя проблема в том, что вместо добавления каждой новой "страницы" данных в существующий файл CSV он перезаписывает файл предыдущей "страницей" данных. Итак, я пишу страницу 1, затем получаю страницу 2, и все данные в CSV заменяются данными, промывают и повторяют.
Мой вопрос: нужно ли создавать новую «строку» для каждая страница данных (возможно, увеличение имени строковой переменной на 1 (s1, s2, s3) в зависимости от номера страницы или мне просто нужно изменить циклы, чтобы использовать какую-то другую часть Streamwriter (например, есть ли команда добавления строки) Мне нужно позвонить в конце l oop?) Если да, какие-либо идеи о том, как это сделать, основаны на моем примере кода ниже? (ПРИМЕЧАНИЕ: у меня есть несколько Console.WriteLines для целей отладки, чтобы я мог видеть данные во время тестирования.)
while (!s.Contains("No records found")) //When API returns "No Records Found" we know we've reached the last page of data we need to get.
{
rpcURL = "https://api.WEBSITEcom/urlrpc?method=getPlacementReport&username=" + userName + "&password=" + passWord + "&class_code=" + classCode + "&from_date=" + startDate + "&to_date=" + endDate + "&page_num=" + page;
Console.WriteLine(rpcURL);
client.Headers.Add("user-agent", "Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
using (var stream = client.OpenRead(rpcURL))
using (var sr = new StreamReader(stream))
{
s = sr.ReadToEnd();
Console.WriteLine(s);
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string docPath = path + "\\" + "AleksReport.csv";
if (!s.Contains("No records found"))
{
using (StreamWriter writer = new StreamWriter(docPath))
{
writer.WriteLine(s);
}
}
else
{
Console.WriteLine("End of records");
}
}
page++;
}