Импорт листа Excel в базу данных с помощью веб-приложения MVC .net - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в программировании, и я пытаюсь импортировать лист Excel в свою базу данных, используя mvc. Я могу импортировать в свою базу данных, но мне нужно выяснить, как добавить проверку, например, электронную почту и дубликаты. Кажется, что если я дважды загружу один и тот же лист Excel, данные будут дважды импортированы в мою базу данных. Также я хотел бы отобразить количество строк на веб-странице, обновленной после импорта. Как мне это сделать ? Это код моего контроллера.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.OleDb;
using System.IO;

namespace excelimport.Controllers { открытый класс HomeController: контроллер {

    // GET: /Home/
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
    OleDbConnection Econ;

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {
        string filename = Guid.NewGuid() + Path.GetExtension(file.FileName);
        string filepath = "/excelfolder/" + filename;
        file.SaveAs(Path.Combine(Server.MapPath("/excelfolder"), filename));
        InsertExceldata(filepath, filename);
        return View();
    }

    private void ExcelConn(string filepath)
    {
        string constr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;""", filepath);
        Econ = new OleDbConnection(constr);
    }

    private void InsertExceldata(string fileepath, string filename)
    {
        string fullpath = Server.MapPath("/excelfolder/") + filename;
        ExcelConn(fullpath);
        String query = string.Format("Select * from [{0}]", "Sheet1$");
        OleDbCommand Ecom = new OleDbCommand(query, Econ);
        Econ.Open();

        DataSet ds = new DataSet();
        OleDbDataAdapter oda = new OleDbDataAdapter(query, Econ);
        Econ.Close();
        oda.Fill(ds);

        DataTable dt =ds.Tables[0];

        SqlBulkCopy objbulk = new SqlBulkCopy(con)
        {
            DestinationTableName = "UserInformation"
        };
        objbulk.ColumnMappings.Add("Email", "Email");
        objbulk.ColumnMappings.Add("Name", "Name");
        objbulk.ColumnMappings.Add("PhoneNo", "PhoneNo");
        objbulk.ColumnMappings.Add("Address", "Address");
        objbulk.ColumnMappings.Add("ZipCode", "ZipCode");
        objbulk.ColumnMappings.Add("Country", "Country");
        objbulk.ColumnMappings.Add("State", "State");
        objbulk.ColumnMappings.Add("City", "City");
        con.Open();
        objbulk.WriteToServer(dt);
        con.Close();       }
}

}

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