• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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.jb51.net" 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 oledb连接Access数据库的方法
    下一篇:asp.net中button控制先执行js再执行后台程序的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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