用代码将Excel数据导入Sql Server

这里直接用小例子说明。

1、打开VS2010—>文件—>新建—>网站,选择ASP.NET空网站并设置存放路径以创建空网站。(我这里路径设置为D:\excelEduceToSql)

2、创建数据库test并在test数据库中创建my_test表(我这里在excelEduceToSql文件夹中创建SQL文件夹并将数据库保存在里面)。

 (表的字段如下:)

   tid(int)

   tname(nvarchar(50))

   tt(nvarchar(50))

3、创建Excel表(我这里的Excel表的文件名为test.xls)。要注意的是:Excel中第一行是定义的是列名,从第2行开始才是数据,通过Sql语句从Excel中读取到的数据也是   从第二行开始的。

 (Excel表设计如下:)

  编号  姓名  备注

  1  a  aa

  2  b  bb

  3  c  cc

4、在第1步的基础上右键—>添加新项,选择Web窗体并命名(我这里按默认的名称Default.aspx)。在设计页面中双击或拉取左边工具箱中的button控件并修改右边属性   中的Text属性为“导入”,双击导入按钮进入Default.aspx.cs文件的代码编写。

5、代码编写如下:

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Data.SqlClient;

  public partial class test : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public SqlConnection con()
    {
      return new SqlConnection("server=.;uid=sa; pwd=sa;database=test");这里需要注意的是server、uid、pwd、database分别为你的数据库。
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
      SqlConnection mycon = con();
      string sqlstr="insert into my_test select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=D:\\excelEduceToSql\\Excel\\test.xls',sheet1$)";这里需要注意的是Excel文件的路径需要用双斜杠来分隔,否则会出错。
      SqlCommand cmd = new SqlCommand(sqlstr, mycon);
      mycon.Open();
      cmd.ExecuteNonQuery();
      mycon.Close();
    }
  }

6、在Sql Server中点击新建查询,输入如下代码并点击执行:

  exec sp_configure 'show advanced options',1
  reconfigure
  exec sp_configure 'Ad Hoc Distributed Queries',1
  reconfigure
  go

  当然这里也可以写在项目程序中执行即可

7、Ctrl+F5运行即可。这里需要注意的是运行是不可打开Excel文件,否则会报错。

  若有错误请指出或直接联系本人QQ:953276191

   

posted @ 2014-09-02 20:21  鑫鑫博客  阅读(828)  评论(0编辑  收藏  举报