2017-02-17 14 views
1

Я новичок в программировании, вы можете мне помочь в этом ?, потому что каждый раз, когда я запускаю это, он дублирует данные, теперь я хочу заменить или просто обновить его, вот мой код .. СпасибоКак обновить или заменить данные csv в C#

StreamWriter writer = null; 
StringBuilder strbuilder = null; 
string dir = Application.StartupPath; 
if (!Directory.Exists(dir)) 
{ 
    Directory.CreateDirectory(dir); 
} 


string path = Path.Combine(dir, "test.csv"); 
strbuilder = new StringBuilder(); 
strbuilder.Append("\n"); 
foreach (var a in listofuser) 
{ 

    strbuilder.Append(a.SystemUserID.ToString() + "," + a.FullName.ToString() + "," + a.Department.ToString() +","+ Environment.NewLine); 

} 


writer = new StreamWriter(path, true); 
writer.Write(strbuilder); 
writer.Close(); 
+0

Если файл достаточно мал (и CSV файл на самом деле должно быть), то я полагаю, простой подход должен был бы прочитать содержимое файла в коллекции в памяти (' List 'какого-либо пользовательского объекта), отредактируйте все, что вы хотите отредактировать в этой коллекции, а затем напишите все это на новый файл (если вы хотите, перезаписать оригинал). – David

+0

Вопрос очень широк. Сколько данных вы хотите обновить или заменить? Где инструкции по обновлению/изменению? – jdweng

+0

У меня есть масса файлов там, сэр, поэтому мне нужно заменить или обновить его каждый раз, когда я запустил программу –

ответ

2

Когда вы строите свой StreamWriter, вы говорите это, чтобы добавить (добавить в конец файла). Похоже, вы хотите перезаписать его (замените файл, если он уже существует).

writer = new StreamWriter(path, false); 

См https://msdn.microsoft.com/en-us/library/36b035cb(v=vs.110).aspx

+0

Большое вам спасибо, сэр. –