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();

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

如何将excel.xls导入ms sqlserver 数据库

方法一:直接利用企业管理器的向导导入:这时需要excel.xls中的字段与数据库中表的字段相对应。需要注意:表中只读的字段,比如id自增要重新修改为不自增才可成功导入,但是,有可能表中的字段属性和ex...
  • lyl0609
  • lyl0609
  • 2011年11月16日 11:09
  • 279

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

Asp.net Excel批量导入数据到SqlServer数据库(2010-08-18 10:09:08)转载 标签:it 分类: A...
  • huajinx
  • huajinx
  • 2011年07月01日 13:19
  • 1962

yii2 xls自动上传,以及批量导入excel

先自动上传xls 导入成功后,执行excel读取 获取数据后,批量插入数据库 public function actionAddusers(){ $model=new OrgS...

java把excel数据写入Oracle数据库(.xls文件)(转)

java把excel数据写入Oracle数据库,此处需要引入两个文件:ojdbc14.jar,jxl-2.6.10.jar,首先在oracle建立表exceltest,excel文件内容与其对应,此处...

java把excel数据写入Oracle数据库(.xls文件)

java把excel数据写入Oracle数据库,此处需要引入两个文件:ojdbc14.jar,jxl-2.6.10.jar,首先在oracle建立表exceltest,excel文件内容与其对应,此处...

如何将excel表格文件导成SQLite数据库文件(.xls-->.db)

导读:首先声明小编刚开始开发android只有4个月左右,所以有不足之处敬请各位指出,小编在此先行谢过。 最近由于公司项目需求需要将一些固定的数据放在本地,也就是app里面。通过查询资料决定...

java操作txt或xls文件批量导入数据

java操作txt或xls文件批量导入数据 我们经常碰到导入批量数据到数据库的,可以通过txt或者xls文件直接导入数据库,但是在程序中我们会有些需要自己处理的数据,在导入到数据库,这就要通过程序来控...
  • ocean20
  • ocean20
  • 2011年03月18日 13:26
  • 10627

从Mysql数据库读取数据批量导入到Excel文件

本篇和上篇类型,只是顺序发生了变化——从Mysql度数据并保存到Excel中。     导出XLS流程:读取数据库的表->循环记录构建制表符分隔的字段信息->设置header信息->导出文件(下载)到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:excel文件(xls)批量导入sqlserver数据库
举报原因:
原因补充:

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