主页 > 知识库 > asp.net中EXCEL数据导入到数据库的方法

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

热门标签:400免费电话怎么办理 威海电销 400电话办理最优质 宁夏机器人电销 t3出行地图标注怎么做 河北网络回拨外呼系统 河南语音外呼系统公司 外呼电销机器人软件 关于宗地图标注技术规范

本文实例讲述了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中EXCEL数据导入到数据库的方法》,本文关键词  asp.net,中,EXCEL,数据,导入,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《asp.net中EXCEL数据导入到数据库的方法》相关的同类信息!
  • 本页收集关于asp.net中EXCEL数据导入到数据库的方法的相关信息资讯供网民参考!
  • 推荐文章