excel文件(xls)批量导入sqlserver数据库

原创 2015年11月20日 09:36:28

 excel文件(xls)批量导入sqlserver数据库
用SqlBulkCopy方法批量导入效率高。


            string tableName = "TD_GYTDSPF";
            string[] fields = { "TDZH", "TDZL", "DLYT", "SYQLX", "FinishTime" };
            string connectionString = "server=xxx;User ID=sa;Password=sa;database=xxx;Connection Reset=FALSE"; 
            string connetctonExcel = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\11.xls;Extended Properties=Excel 8.0;";
            string filepath = @"e:\11.xlsx";
//把excel作为数据源,读取数据存在dataset中
            DB.Database db = Database.GetDatabase(connetctonExcel);
            DataSet ds;
            db.ExecuteSQLQuery("SELECT * FROM [sheet1$] ", out ds);





            /* //建表及清空表数据。自动创建数据库表,读取的是csv文件,类似txt文件
string strSql = string.Format("if object_id('{0}') is null create table {0}(", tableName);
            for (int i = 0; i < fields.Length; i++)
            {
                strSql += string.Format("[{0}] varchar(255),", fields[i]);
            }
            strSql = strSql.Trim(',') + ");";
            strSql += " truncate table " + tableName + ";";

            using (SqlConnection sqlconn = new SqlConnection(connectionString))
            {
                sqlconn.Open();
                SqlCommand command = sqlconn.CreateCommand();
                command.CommandText = strSql;
                command.ExecuteNonQuery();
                sqlconn.Close();
            }
            */

            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            /* using (StreamReader sr = new StreamReader(filepath))
             {
                 string[] value;

                 DataRow row;
                 for (int x = 0; x < fields.Length; x++)
                 {
                     dt.Columns.Add(new DataColumn(fields[x]));
                 }

                 while (!sr.EndOfStream)
                 {
                     value = sr.ReadLine().Split(',');

                     row = dt.NewRow();
                     row.ItemArray = value;
                     dt.Rows.Add(row);
                 }
                 sr.Close();
             }*/

            SqlConnection con = new SqlConnection(connectionString);
            SqlBulkCopy bc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock);
            bc.DestinationTableName = tableName;
            //for (int i = 0; i < dtColum.Count; i++)
            //{
            //    bc.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString());
            //}
         
            bc.BatchSize = 10000;
            con.Open();
            bc.WriteToServer(dt);
            bc.Close();
            con.Close();

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Asp.net Excel批量导入数据到SqlServer数据库

Asp.net Excel批量导入数据到SqlServer数据库(2010-08-18 10:09:08)转载 标签:it 分类: A...

SSIS将excel文件批量导入到sql server 2005

将一个目录下(可以包括子目录)结构一样的excel文件批量导入sql2005,可以用ssis来定制任务.下面用大量图片完全说明整个过程.1、建立测试excel文件,假设有a b c d四个字段,保存在...
  • htl258
  • htl258
  • 2010-04-08 13:31
  • 11288

JAVA Excel数据批量导入到SQL数据库

今天刚好需要批量将Excel里的数据导入到SQL Server,本来打算用Genero写的,发现官方驱动包找不到SQL Server 2012的驱动,我的天啊,无解!只好用JAVA来写!JAVA通过加...

大数据量高效导入数据库(以excel导入sqlserver为例)

最近正在做一个项目,要把excel中的数据导入到sqlserver数据库中,首先想到的就是insert,采用连接Excel对象的Microsoft.ACE.OLEDB.12.0接口引擎连接到excel...

如何成为一个好的系统分析员

如何成为一个好的系统分析员邓磊(来自51CMM) 系统分析员基本功  好的系统分析员都是从优秀的程序员中产生的,坚实的编程功底、丰富的经验是今后做系统分析的基础。   没有对系统本身进行过透彻剖析过,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)