Как решить проблему с добавлением в CSV-файл в ASP. net? - PullRequest
0 голосов
/ 30 апреля 2020

У меня проблема с добавлением некоторого текста в CSV-файл, мой текст добавляется, но он добавляется к предыдущей строке, а не к новой. Я также получаю сообщение об ошибке типа System.FormatException: входная строка была в неправильном формате. Это, очевидно, связано с проблемой добавления, но я не могу понять, что я делаю здесь неправильно. Любые идеи?

вот вывод в файле CSV

Университет, 0

Продовольственные товары, 1

Другие, 2

Gaming, 3Pets, 4

Заранее спасибо :)

Контроллер

// GET: Category/Create
    public ActionResult Create()
    {
        return View();
    }

    // POST: Category/Create
    [HttpPost]
    public ActionResult Create(Category category)
    {
        try
        {
            TodolistRepository.AddCategory(category.Name);
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

.cs file

public static bool AddCategory(string category, int catId = 0)
    {
        int newIdentifier = catId;

        if (newIdentifier == 0)
        {
            int maxIdentifier = _listOfCategories.Max(x => x.Identifier);
            newIdentifier = ++maxIdentifier;
        }

        try
        {
            using (FileStream fs = new FileStream(_categoriesfile, FileMode.Append, FileAccess.Write))
            {
                using (var writer = new StreamWriter(fs))
                {
                    var line = $"{category},{newIdentifier.ToString()}";
                    writer.WriteLine(line);
                    writer.Flush();
                }
            }

            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }

 public static void ReadCategoriesFromFile()
    {
        using (StreamReader reader = new StreamReader(_categoriesfile))
        {
            while (!reader.EndOfStream)
            {
                string[] fields = reader.ReadLine().Split(',');
                _listOfCategories.Add(new Category
                {
                    Name = fields[0],
                    Identifier = Int32.Parse(fields[1])
                });
            }
        }
    }
    //Gets all the categories in the List
    public static List<Category> GetCategories()
    {
        ReadCategoriesFromFile();
        _listOfCategories = _listOfCategories.OrderBy(x => x.Identifier).ToList();
        return _listOfCategories;
    }

1 Ответ

0 голосов
/ 30 апреля 2020

Добавить символ новой строки "\ r \ n" в конце строки, где вы добавляете категорию. если вы хотите проверить, есть ли строка без строки чтения символа newLine первой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...