Я новичок в программировании, и я пытаюсь импортировать лист 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(); }
}
}