关于execel导入数据库的几种方法

Execel导入数据库

1sql语句

研究了老半天搜了好多方法,最后终于导进去了,不容易啊!

赶紧记下来,省得以后又忘了!

 

Select * into aa from openrowset('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:/aa.xls', 'SELECT * FROM [aa$]')

//这句是把Caa.xls的表aa的数据导入表 aa

注意:不能用默认的sheet1需要重命名,要不他会报错,找不到isam 提供的程序

 

SELECT *FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=你的excel.xls',[sheet1$])

特别注意:

1、这里只能连接本地数据库服务器执行,远程服务器会报错,另外路径和文件名不要用中文。

 2、如果某一列的部分行是数字,部分行是字符串,可能会导致读取的数据中那部分字符串无法显示,处理方法先设置该列为文本列,如果设置为文本列仍然不能搞定的话,需要在该列的第一行数据上加', 1234 >'1234,保存后重新读取即可。  

错误排查:

如果出现:服务器: 消息 7399,级别 16,状态 1,行 1OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:  提供程序未给出有关错误的任何信息。]。

请检查Excel文件的路径和Sheet页的名称是否正确,确认正确然后有错误的情况下更改Sheet页的名称后即可

2、用DTS即直接在企业管理器中导入即OK

 

.打开sqlserver 选择数据库 点击右健[所有任务]-[导入数据]
.
按照向导 选择数据源 [micrsoft excel 97-2000] 选择要导入的文件
接下来的向导选择要导入到的数据库,该导入支持新建表,和表数据追加都可以,按照向导步骤操作就可以啦!

3、代码导入

/// <summary>

        /// 导入execel

        /// </summary>

        public void dd(string path)

        {

            //convert Excel to SQL using OLEDB

            //string path = txtExcel.Text;

 

            string execelConnectionStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/cc.xls;Extended Properties=""Excel 8.0;HDR=YES;""";

 

            using (OleDbConnection conn = new OleDbConnection(execelConnectionStr))

            {

                OleDbCommand cmd = new OleDbCommand("select * FROM [sheet1$]", conn);

                conn.Open();

 

                using (DbDataReader dr = cmd.ExecuteReader())

                {

                    // SQL Server Connection String

                    string sqlConnectionString = "server=.;uid=sa;pwd=sa;database=DB_Select";

 

                    // Bulk Copy to SQL Server

                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))

                    {

                        bulkCopy.DestinationTableName = "dd";

                        bulkCopy.WriteToServer(dr);

                    }

                }

            }

           

 

 

        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值