在如今信息化的世界中,数据已经成为了企业运转的重要资源。通过将数据存储于数据库中,企业可以快捷地查找、维护和利用数据。而上传Excel文件至SQL数据库则是其中的一种常见操作。本文将以ASP.NET MVC框架为例,介绍如何实现网站上传Excel文件到SQL数据库操作。
一、创建数据库
需要创建数据库及表结构。这里以员工信息表格为例,创建一个名为“Employee”的表。表中包含姓名、性别、年龄、以及登录日期等五个字段。具体的SQL脚本如下:
“
CREATE TABLE Employee (
ID INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Gender NVARCHAR(50) NOT NULL,
Age INT NOT NULL,
Phone NVARCHAR(50) NOT NULL,
CreateDate DATETIME NOT NULL
);
“
二、创建Model
为了便于操作数据库,我们需要创建一个Model类,即“Employee”类,用于定义表中的字段。示例代码如下:
“csharp
public class Employee
{
//定义表中字段
public int ID { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public int Age { get; set; }
public string Phone { get; set; }
public DateTime CreateDate { get; set; }
}
“
三、创建Controller
接下来,我们需要创建一个Controller类,用于实现上传Excel文件至SQL数据库的功能。我们需要在Controller类中添加一些命名空间引用:
“csharp
using System.Data;
using System.Data.OleDb; //用于处理Excel文件
using System.Data.SqlClient; //用于操作SQL数据库
using System.IO;
“
然后,我们需要添加以下代码,用于接收用户上传的Excel文件:
“csharp
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
try
{
if (file != null)
{
string fileName = Path.GetFileName(file.FileName);
string path = Path.Combine(Server.MapPath(“~/App_Data/uploads”), fileName);
file.SaveAs(path);
string conString = string.Empty;
string extension = Path.GetExtension(file.FileName);
switch (extension)
{
case “.xls”: //Excel 97-03
conString = ConfigurationManager.ConnectionStrings[“Excel03ConString”].ConnectionString;
break;
case “.xlsx”: //Excel 07
conString = ConfigurationManager.ConnectionStrings[“Excel07ConString”].ConnectionString;
break;
}
DataTable dt = new DataTable();
conString = string.Format(conString, path);
using (OleDbConnection connExcel = new OleDbConnection(conString))
{
using (OleDbCommand cmdExcel = new OleDbCommand())
{
using (OleDbDataAdapter odaExcel = new OleDbDataAdapter())
{
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string sheetName = dtExcelSchema.Rows[0][“TABLE_NAME”].ToString();
cmdExcel.CommandText = “SELECT * From [” + sheetName + “]”;
odaExcel.SelectCommand = cmdExcel;
odaExcel.Fill(dt);
connExcel.Close();
}
}
}
for (int i = 0; i
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[“ConString”].ToString()))
{
using (SqlCommand cmd = new SqlCommand(“INSERT INTO Employee (Name, Gender, Age, Phone, CreateDate) VALUES (@Name, @Gender, @Age, @Phone, @CreateDate)”))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue(“@Name”, dt.Rows[i][“Name”].ToString());
cmd.Parameters.AddWithValue(“@Gender”, dt.Rows[i][“Gender”].ToString());
cmd.Parameters.AddWithValue(“@Age”, dt.Rows[i][“Age”].ToString());
cmd.Parameters.AddWithValue(“@Phone”, dt.Rows[i][“Phone”].ToString());
cmd.Parameters.AddWithValue(“@CreateDate”, DateTime.Now);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
ViewBag.Message = string.Format(“{0} lines found in your file”, dt.Rows.Count);
}
else
{
ViewBag.Message = “Please select a file”;
}
}
catch (Exception ex)
{
ViewBag.Message = ex.ToString();
}
return View();
}
“
以上代码便实现了将Excel文件中的数据批量插入至SQL数据库的功能。
四、创建视图
我们需要创建一个视图,用于上传Excel文件。示例代码如下:
“`html
@using (Html.BeginForm(“Upload”, “Home”, FormMethod.Post, new { enctype = “multipart/form-data” }))
{
-
免费下载或者VIP会员资源能否直接商用?本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
-
提示下载完但解压或打开不了?最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。
-
找不到素材资源介绍文章里的示例图片?对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
-
付款后无法显示下载地址或者无法查看内容?如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理
-
购买该资源后,可以退款吗?源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源