一、开工必备

1、micorosoft office2007

2、VS2010、Oracle 11

二、界面

三、内部代码

(1)获取数据库连接,定义全局变量

private static string connString = System.Configuration.ConfigurationSettings.AppSettings[ "connStr" ];
         DataSet dTable;

(2)选择Excel文件导入dataset

if(openFileDialog1.ShowDialog()==DialogResult.OK)
             {
                 ctlPath.Text = openFileDialog1.FileName;
                 ExceltoDataSet(ctlPath.Text);
             }

(3)加载Excel文件数据

public DataSet ExceltoDataSet(string path)
         {
             MessageBox.Show( "正在获取数据....请稍候" );
             //
             string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+path+";Extended Properties='Excel 12.0;HRD=Yes;IMEX=1';" ;
             OleDbConnection conn = new OleDbConnection(strConn);
             conn.Open();
            System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
            
            string tableName = schemaTable.Rows[0][2].ToString().Trim();
            
             string strExcel =  " " ;
             OleDbDataAdapter myCommand = null;
             DataSet ds = null;
             strExcel = "Select * from [" + tableName + "]";
             myCommand = new OleDbDataAdapter(strExcel,strConn);
             ds = new DataSet();
             try
             {
                 myCommand.Fill(ds, tableName);
             }
             catch(Exception ex)
             {
                 MessageBox.Show(ex.Message);
             }
                 dTable = ds;
           
             if (ds != null)
             {
                 button2.Visible = true;
               
         
             }
             return ds;
     
        
         }

(4)显示导入数据

DataTable dt = dTable.Tables[0];

try {

for (int i = 0; i > 0; i++)

{

dt.Rows.Remove(dt.Rows[i]);

}

dataGridView1.DataSource = dt;

} catch (Exception ex)

{

throw ex;

}

(5)将数据导入数据库

  1. DataTable dt = dTable.Tables[0];
  2. for (int i = 1; i < dt.Rows.Count; i++)
  3. {
  4. string sql1 = string.Format( "insert  /*+nologging*/ into TPB_CARCONFIG(LINERNUM,RESID,CARTYPEID,RESFNAME,RESURL,BRAND" +
  5. " values('" + dTable.Tables[0].Rows[i][0] + "','101','" + dTable.Tables[0].Rows[i][0] + "','汽车之家','www.autohome.com.cn/', " +
  6. " '" +dTable.Tables[0].Rows[i][181]+ "','" +dTable.Tables[0].Rows[i][182]+ "','" +dTable.Tables[0].Rows[i][183]+ "','" +dTable.Tables[0].Rows[i][1]+ "')" );
  7. OracleConnection oconn = new OracleConnection(connString);
  8. oconn.Open();
  9. OracleCommand cmd;
  10. try {
  11. cmd = new OracleCommand(sql1.ToString(), oconn);
  12. int a = Convert.ToInt32(cmd.ExecuteNonQuery());
  13. if (a > 0)   {
  1. }
  2. } catch (Exception ex)  {
  3. 注:这里收集重复信息的编号,保存到txt文本
  4. string path =  "c:错误信息.txt" ;
  5. FileStream fs = new FileStream(path,FileMode.Append);
  6. StreamWriter sw = new StreamWriter(fs);
  7. sw.WriteLine( "Excel编号"  + dTable.Tables[0].Rows[i][0]+ "数据已与数据表中重复" );
  8. sw.Close();
  9. fs.Close();
  10. fs.Dispose();
  11. continue;
  12. }
  13. oconn.Close();
  14. }

注:该程序我没有使用线程,所以在导入大量数据的时候,winform窗体假死,但是程序依然在奋斗,请耐心等待复活。

四、效果图
      1、导入前

2、导入后→点击显示数据

五、源码下载http://pan.baidu.com/s/1sj4U2i5

EXCEL数据导入dataset的更多相关文章

  1. excel数据导入到sqlserver中---------工作笔记

    调用页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys ...

  2. c#将Excel数据导入到数据库的实现代码(OleDb)

    sing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web ...

  3. c#将Excel数据导入到数据库的实现代码(转载)

    假如Excel中的数据如下:     数据库建表如下:     其中Id为自增字段:      代码如下: using System; using System.Collections.Generic ...

  4. C#将Excel数据导入数据库(MySQL或Sql Server)

    最近一直很忙,很久没写博客了.今天给大家讲解一下如何用C#将Excel数据导入Excel,同时在文章最后附上如何用sqlserver和mysql工具导入数据. 导入过程大致分为两步: 1.将excel ...

  5. C# Excel数据导入到数据库

    http://www.jb51.net/article/44743.htm 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 复制代码 代码如下: using System ...

  6. 批量Excel数据导入Oracle数据库

    由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...

  7. c#将Excel数据导入到数据库的实现代码

    这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...

  8. 点滴积累【C#】---将Excel数据导入到数据库

    本文修改来源:http://www.cnblogs.com/chenyuming507950417/p/3169267.html 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: ...

  9. Excel 数据导入SQL XML 自动生成表头

    去出差的时候应客户要求要要将Excel 文件内的数据批量导入到数据库中,而且有各种不同种类的表格,如果每一个表格多对应一个数据表的话, 按照正常的方法应该是创建数据表,创建数据库中映射的数据模型,然后 ...

随机推荐

  1. Winfrom 开发小技能

    1.放弃进度条.动态进度图片等方式实现用户体验优化方式(主要是优化用户等待体验),建议使用方式? 答:对于From或者Control而言,其提供了Cursor属性设置即可. 例如: this.Curs ...

  2. oracle之trunc与round

    round(x[,y]) 功能:返回四舍五入后的值 参数:x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位. 返回: ...

  3. IOS开发 strong,weak,retain,assign,copy nomatic 等的区别与作用

    strong,weak,retain,assign,copy nomatic 等的区别 copy与retain:1.copy其实是建立了一个相同的对象,而retain不是:2.copy是内容拷贝,re ...

  4. AVD Manager

    启动AVD Manager会弹出下面的窗口: 然后点击右侧的Create来新建一个模拟器,创建一个模拟器,取名Phone,然后选择设备屏幕尺寸,SDK的大小. 创建完成后,选中刚刚创建的模拟器,然后点 ...

  5. Hololens开发笔记之连接PC实现资源共享

    官网原文介绍:https://developer.microsoft.com/en-us/windows/holographic/using_the_windows_device_portal Hol ...

  6. 【转】ORACLE定期清理INACTIVE会话

    源地址:http://www.cnblogs.com/kerrycode/p/3636992.html ORACLE数据库会话有ACTIVE.INACTIVE.KILLED. CACHED.SNIPE ...

  7. [杂] BOSE QC15维修小记

    有一句话大概是这样说的“其他的耳机是靠嘴说的,BOSE是靠耳朵听的”,2010年就开始馋QC3,直到2012年在Vancouver的BOSE店里,在震耳欲聋的模拟噪音中带上QC15那一刻,下了决心. ...

  8. 02-C#入门(循环)

    记得第一次学编程的时候,就听说过一句话:“新手学习和掌握一门编程语言是很容易的,但是如果你学会了某种编程语言,再去学习新的语言,就很难掌握了”,现在深深地感受到了这方面的阻力. 其实流程控制.循环,包 ...

  9. 翻箱倒柜,《Delphi中建议使用的语句》

    (*//标题:Delphi中建议使用的语句整理:Zswang连接:http://www.csdn.net/Expert/TopicView1.asp?id=724036日期:2002-06-22支持: ...

  10. petapoco存储过程

    db.ExecuteScalar<string>("exec P_GetCode @0,@1,@2,@3,@4,@5",); using (var db = new D ...