华域联盟 .Net asp.net中EXCEL数据导入到数据库的方法

asp.net中EXCEL数据导入到数据库的方法

本文实例讲述了asp.net中EXCEL数据导入到数据库的方法。分享给大家供大家参考。具体分析如下:

excel是办公中非常常用的一个办公表格了,但我们在开发中通常会需要直接把excel数据快速导入到数据库中了,这里整理了一个asp.net中EXCEL数据导入到数据库的例子供各位参考学习。

注意:EXCEL中的第一行不能导入。
下面是源码:IntoExcel.aspx:

复制代码 代码如下:
<%@ Page  AutoEventWireup="true" CodeFile="IntoExcel.aspx.cs" Inherits="study_IntoExcel" %> 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 

<head id="Head1" runat="server"> 

<title>无标题页</title> 

<script language="javascript" type="text/javascript"><!-- 

// <!CDATA[ 

function check() { 

var k=//S+/.[xls]/; 

if(!k.test(document.getElementById("fileId").value)) 



    alert("只能上次xls格式的文件"); 

    return false; 



return true; 



// --></script> 

</head> 

<body> 

    <form id="form1" runat="server"> 

    <div> 

    <p> 

        <asp:FileUpload ID="fileId" runat="server" /> 

        <asp:Button ID="Button1" runat="server" Text="上传" OnClientClick="return check()" onclick="Button1_Click" /></p> 

    </div> 

    </form> 

</body> 

</html>

IntoExcel.aspx.cs

复制代码 代码如下:
using System; 

using System.Collections.Generic; 

using System.Linq; 

using System.Web; 

using System.Web.UI; 

using System.Collections; 

using System.Configuration; 

using System.Data; 

using System.Web.Security; 

using System.Web.UI.HtmlControls; 

using System.Web.UI.WebControls.WebParts; 

using System.IO; 

using System.Data.OleDb; 

using System.Data.SqlClient; 

using System.Web.UI.WebControls; 

 

public partial class study_IntoExcel : System.Web.UI.Page 



    protected void Page_Load(object sender, EventArgs e) 

    { 

 

    } 

        /// <summary> 

        /// 上传文件 

        /// </summary> 

        /// <param name="sender"></param> 

        /// <param name="e"></param> 

        protected void Button1_Click(object sender, EventArgs e) 

        { 

            string fileName = fileId.FileName; 

            string savePath = Server.MapPath("~/file/"); 

            FileOperatpr(fileName, savePath); 

            fileId.SaveAs(savePath + fileName); 

            DataOperator(fileName, savePath); 

        } 

        /// <summary> 

        /// 数据操作 

        /// </summary> 

        /// <param name="fileName"></param> 

        /// <param name="savePath"></param> 

        private void DataOperator(string fileName, string savePath) 

        { 

            string myString = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =  " + savePath + fileName + ";Extended Properties=Excel 8.0"; 

            OleDbConnection oconn = new OleDbConnection(myString); 

            oconn.Open(); 

            DataSet ds = new DataSet(); 

            OleDbDataAdapter oda = new OleDbDataAdapter("select * from [Sheet1$]", oconn); 

            oda.Fill(ds); 

            oconn.Close(); 

            DataSetOperator(ds,savePath+fileName); 

        } 

        /// <summary> 

        /// 数据集操作 

        /// </summary> 

        /// <param name="ds"></param> 

        private void DataSetOperator(DataSet ds,string filePath) 

        { 

            SqlConnection conn = new SqlConnection("Data Source=SONYSVR;Initial Catalog=IAR_Factory_811;User ID=sa;Password=P@ssword"); 

            conn.Open(); 

            SqlTransaction str = conn.BeginTransaction();//利用事务处理 防止中断 

            int k = 0; 

            if (ds.Tables[0].Rows.Count < 1) 

            { 

                Response.Write("<script>alert('没有数据!')</script>"); 

                return; 

            } 

            try 

            { 

                for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 

                { 

                    string <strong><a href="https://www.cnhackhy.com" title="sql" target="_blank">sql</a></strong>Str = "insert into IntoExcel(Tname,Tage,Taddress)values"; 

                    sqlStr +="('"+ ds.Tables[0].Rows[i][0].ToString()+"',"; 

                    sqlStr += ds.Tables[0].Rows[i][1].ToString()+","; 

                    sqlStr +="'" +ds.Tables[0].Rows[i][2].ToString()+"')"; 

                    SqlCommand cmd = new SqlCommand(sqlStr, conn, str); 

                    cmd.Transaction = str; 

                    k += cmd.ExecuteNonQuery(); 

                } 

                str.Commit(); 

            } 

            catch (Exception ex) 

            { 

                Response.Write("发生异常,数据已回滚/n信息/n" + ex.Message); 

                str.Rollback(); 

            } 

            finally 

            { 

                Response.Write("上传成功" + k + "条"); 

                File.Delete(filePath); 

            } 

        } 

        /// <summary> 

        /// 文件操作 

        /// </summary> 

        /// <param name="fileName"></param> 

        /// <param name="savePath"></param> 

        private void FileOperatpr(string fileName, string savePath) 

        { 

            if (!Directory.Exists(savePath)) 

            { 

                Directory.CreateDirectory(savePath); 

            } 

            if (File.Exists(savePath + fileName)) 

            { 

                File.Delete(savePath + fileName); 

            } 

        } 



 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";Extended Properties='Excel 8.0;HDR=YES

 Provider=Microsoft.Jet.OLEDB.4.0;;//连接驱动

Data Source=" + savePath + "; // 数据库地址

Extended Properties='Excel 8.0; // 连接的是Excel8.0

HDR=YES;// 有两个值:YES/ NO, 这2个值,说了你是否能直接读列名,NO,只可以读下标

IMEX=1;//解决数字与字符混合时,识别不正常的情况.

这个读入数据库的方式不是最佳的,应该用office组件

select * from [Sheet1$] //引用EXCLE文件中sheet1工作表的内容

OleDB控件用的是OleDb的驱动程序,可以访问各种数据库  

 

数据库中的字段:

复制代码 代码如下:
create table IntoExcel 



    Tid int identity(1,1) primary key, 

    Tname varchar(50), 

    Tage int, 

    Taddress varchar(200), 

     

)

SQL控件用的是专用的驱动程序,能高效的访问SQL Server数据库

SQLConnection只能访问SQL Server,而OleDbConnection则可以访问所有数据库。  

如果只是访问SQL Server的话,SQL比OleDb更快。

希望本文所述对大家的asp.net程序设计有所帮助。

您可能感兴趣的文章:

  • asp.net core集成CKEditor实现图片上传功能的示例代码
  • asp.net core webapi文件上传功能的实现
  • ASP.NET Core单文件和多文件上传并保存到服务端的方法
  • asp.net利用ashx文件实现文件的上传功能
  • asp.net大文件上传解决方案实例代码
  • asp.net上传Excel文件并读取数据的实现方法
  • ASP.NET Core中使用EPPlus导入出Excel文件的完整步骤
  • ASP.NET Core 导入导出Excel xlsx 文件实例
  • ASP.NET之Excel下载模板、导入、导出操作
  • asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
  • asp.net实现数据从DataTable导入到Excel文件并创建表的方法
  • Asp.Net使用Npoi导入导出Excel的方法
  • ASP.NET下将Excel表格中的数据规则的导入数据库思路分析及实现
  • ASP.NET 上传文件导入Excel的示例

本文由 华域联盟 原创撰写:华域联盟 » asp.net中EXCEL数据导入到数据库的方法

转载请保留出处和原文链接:https://www.cnhackhy.com/55986.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部