Excel导入SqlServer数据库(二)

             上文的第一种导入方法是通过中间变量DataTable.

             本文是第二种方法.直接通过sql语句的控制将Execl写入Sql

             界面还是FileUpload和Button,通过按钮获取Excel文件路径.这里就不介绍了.详情请看Excel导入SqlServer数据库(一)逻辑层将文件路径下传给数据处理层。

            下面看D层具体做法:   

 

    /// <summary>
    /// 通过sql语句将Excel导入Sql
    /// </summary>
    /// <param name="strPath">Excel文件所在路径</param>
    /// <returns>bool</returns>
    public bool BatchInsertData(string strPath)
    {
        bool blnResult = false;
        //这种写法用于数据库中的表不存在,则在新建newTable表后,导入Excel中的数据.
        //  string strsql = "select * into newTable from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=" + "\"" + path + "\"" + ";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]";
        //这种写法用于表Table已经存在的情况下,直接导入数据.
        string strsql = "insert into Table select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=" + strPath + "',Sheet1$)";

        //初始化连接
        string strConn = "server=192.168.*.*;database=Student;uid=sa;pwd=123";
        SqlConnection objConn = new SqlConnection(strConn);
        //打开连接
        objConn.Open();
        //执行
        SqlCommand sqlcom = new SqlCommand(strsql, objConn);
        if (sqlcom.ExecuteNonQuery() > 0)
        {
            blnResult = true;
        }
        return blnResult;
    }


               这种方法代码相对简单。重点就是对Sql语句的应用。

              下面总结几种比较常用的导入导出的sql语句。

                

 一,SQL SERVER 和access的数据导入导出

 

         1.在SQL SERVER里查询access数据:  

            SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名  

 

            2.将access导入SQL server

             SELECT * INTO newtable FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名

 

            3.将SQL SERVER表里的数据插入到Access表中

               insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=" c:\DB.mdb";User ID=Admin ;Password=')...表名 (列名1,列名2) select 列名1,列名2 from sql表     

               insert into OPENROWSET  ('Microsoft.Jet.OLEDB.4.0', 'C:\db.mdb';'admin';'', Test) select id,name from Test INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名) SELECT * FROM sqltablename 

 

二、SQL SERVER 和EXCEL的数据导入导出

 

            1、在SQL SERVER里查询Excel数据:

            SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 

           

             2、将Excel的数据导入SQL server :

            SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

           

             3、将SQL SERVER中查询到的数据导成一个Excel文件 

            EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""' --参数说明:S 是SQL服务器名;U是用户;P是密码         

          举例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.Table out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'

           

            4、在SQL SERVER里往Excel插入数据: 

           insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值