为了解决脑残的查询EXCEL表问题,学习了关于.NET将EXCEL数据导入数据库

      工作一年了,很多事情经常要查询Excel表格数据,因为表格实在是太多了,每次都需要到处去找,好几次都受不了这种脑残的查询,今天决定学习一下怎么把Excel里的信息写入数据库去,方便以后查询。我思考了一下,做这个事情是因为有以下几个必要性。

      一、你的Excel表太多,而且这些表的数据都是需要反复使用

      二、表里的数据信息满足一定的结构,当然就是说这些信息是可以通过数据库建立相关的数据字典

      三、你确实觉得这样的功能有时间去实现,实现了以后可以让你觉得是可以节约时间的

不然我劝大家还是知道这样的方法就可以了,没有必要将这个东西弄成系统。

      因为我是学.NET出身的,这个系统也就是本地自己用用方便,并不需要考虑数据库的安全性,所以选择了Visual studio 2005和Sql Server 2005开发(因为之前有个了解,说是Sql2000的安全性要高)。写这个的目的只是为了解决问题,让我自己什么时候忘了方法还可以回来看看,方便自己理解。相信只要.NET入门级的人士都能通过我这篇东西来实现功能。有什么地方不足的,方法实现复杂的,结构模块不清晰的,欢迎大家指教。

      首先,用户建立一个窗口界面,样子自己可以随便弄。功能的实现主要用到一个OpenFileDialog控件,该控件的ShowDialog方法可以弹出一个打开文件对话框。

      ///<summary>

     ///"打开文件"单击事件

     ///</summary>

     private void buttonOpenFile_Click(object sender, EventArgs e)

     {

        if (openFileDialog1.ShowDialog()! = DialogResult.OK)

      returnl

    ImportFile(this.openFileDialog.FileName);//ImportFile为数据导入数据库方法

      }

      ///<summary>

      ///将Excel 文件 filename 中的数据导入到数据库表"XXX"中

      ///</summary>

      ///<param name=”filename“></param>

      void ImportFile(string fileName)

  {

    //1 从Excel 中读取数据,放入DataSet对象中

    DataSet dataSet = new DataSet();

    try

    {

      OleDbConnection myConn = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName +";Extended Properties = Excel 8.0;")

      //其中这个Excel的链接可以通过Visual数据库连接测试里复制

      myConn.Open();

      OleDbDataAdapter adapter = new OleDbDataAdapter("Select * form [Sheet1$]", myConn);

      OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

      adapter.Fill(dataSet);

      myConn.Close();

    }

    Catch (OleDbException ex)

    {

      MessageBox.Show(ex.Message);

    }

    foreach (DataRow row2 in dataSet.Tables[0].Rows)

    {

      string s列1 = row2[colname1].ToString();

      string s列2 = row2[colname2].ToString();

      ...

      

      sql = "";

      sql += "insert into [数据库表] values (";

      sql += "'" + s列1 + "'";

      sql += "'" + s列2 + "'";

      ...

      sql += ")";

      db.ExecuteSQL(sql);

    }

  }

转载于:https://www.cnblogs.com/koyang/archive/2013/04/30/3052025.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值