Member 13200081 Ответов: 1

Как импортировать данные из excel в базу данных с помощью mvc.net-что?


Пожалуйста, любезно помогите мне исправить мой импорт данных из excel в базу данных с помощью Entity Framework вместе с MVC.

Ошибка, которую я получаю, гласит, что следующий код недоступен
for (int row = 2; ws.Cells[row, col].Value != null; row++ )
.

Поэтому из-за этой ошибки всякий раз, когда я запускаю свой код, мой код FOR пропускается.

Что я уже пробовал:

public ActionResult Import()
        {
            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];
                try
                {
                    using (var p = new ExcelPackage(file.InputStream))
                    {
                        ExcelWorksheet ws = p.Workbook.Worksheets[1];
                        int col = 1;

                        //Insert records to database table.
                        EntertainmentEntities entities = new EntertainmentEntities();

                        for (int row = 2; ws.Cells[row, col].Value != null; row++ )
                        {
                            entities.Music.Add(new Music
                            {

                                Artist = ws.Cells[row, 1].Value.ToString(),
                                Song = ws.Cells[row, 2].Value.ToString(),
                                Genre = ws.Cells[row, 3].Value.ToString(),
                                MusicDate = (int)ws.Cells[row, 4].Value
                               

                            });
                            
                            entities.SaveChanges();
                            return View("Index");
                        }


                    }
                }
                catch
                {
                    ViewBag.Message = "Error";
                }

            }
            else
            { }
            return View("Import");
        }

ZurdoDev

Отладьте код и выясните, почему. Довольно легкий.

1 Ответов

Рейтинг:
1

Richard Deeming

for (int row = 2; ws.Cells[row, col].Value != null; row++ )
{
    entities.Music.Add(new Music
    {
        ...
    });
    
    entities.SaveChanges();
    return View("Index");
}

У тебя есть return заявление внутри твой for петля. В результате цикл будет выполняться один раз и сразу же возвращаться.

Переместите SaveChanges и return линии снаружи из for петля:
for (int row = 2; ws.Cells[row, col].Value != null; row++ )
{
    entities.Music.Add(new Music
    {
        ...
    });
}

entities.SaveChanges();
return View("Index");