EXCEL数据导入dataset
一、开工必备
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)将数据导入数据库
- DataTable dt = dTable.Tables[0];
- for (int i = 1; i < dt.Rows.Count; i++)
- {
- string sql1 = string.Format( "insert /*+nologging*/ into TPB_CARCONFIG(LINERNUM,RESID,CARTYPEID,RESFNAME,RESURL,BRAND" +
- " values('" + dTable.Tables[0].Rows[i][0] + "','101','" + dTable.Tables[0].Rows[i][0] + "','汽车之家','www.autohome.com.cn/', " +
- " '" +dTable.Tables[0].Rows[i][181]+ "','" +dTable.Tables[0].Rows[i][182]+ "','" +dTable.Tables[0].Rows[i][183]+ "','" +dTable.Tables[0].Rows[i][1]+ "')" );
- OracleConnection oconn = new OracleConnection(connString);
- oconn.Open();
- OracleCommand cmd;
- try {
- cmd = new OracleCommand(sql1.ToString(), oconn);
- int a = Convert.ToInt32(cmd.ExecuteNonQuery());
- if (a > 0) {
- }
- } catch (Exception ex) {
- 注:这里收集重复信息的编号,保存到txt文本
- string path = "c:错误信息.txt" ;
- FileStream fs = new FileStream(path,FileMode.Append);
- StreamWriter sw = new StreamWriter(fs);
- sw.WriteLine( "Excel编号" + dTable.Tables[0].Rows[i][0]+ "数据已与数据表中重复" );
- sw.Close();
- fs.Close();
- fs.Dispose();
- continue;
- }
- oconn.Close();
- }
注:该程序我没有使用线程,所以在导入大量数据的时候,winform窗体假死,但是程序依然在奋斗,请耐心等待复活。
四、效果图
1、导入前

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

五、源码下载http://pan.baidu.com/s/1sj4U2i5
EXCEL数据导入dataset的更多相关文章
- excel数据导入到sqlserver中---------工作笔记
调用页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys ...
- c#将Excel数据导入到数据库的实现代码(OleDb)
sing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web ...
- c#将Excel数据导入到数据库的实现代码(转载)
假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码如下: using System; using System.Collections.Generic ...
- C#将Excel数据导入数据库(MySQL或Sql Server)
最近一直很忙,很久没写博客了.今天给大家讲解一下如何用C#将Excel数据导入Excel,同时在文章最后附上如何用sqlserver和mysql工具导入数据. 导入过程大致分为两步: 1.将excel ...
- C# Excel数据导入到数据库
http://www.jb51.net/article/44743.htm 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 复制代码 代码如下: using System ...
- 批量Excel数据导入Oracle数据库
由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数 ...
- c#将Excel数据导入到数据库的实现代码
这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...
- 点滴积累【C#】---将Excel数据导入到数据库
本文修改来源:http://www.cnblogs.com/chenyuming507950417/p/3169267.html 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: ...
- Excel 数据导入SQL XML 自动生成表头
去出差的时候应客户要求要要将Excel 文件内的数据批量导入到数据库中,而且有各种不同种类的表格,如果每一个表格多对应一个数据表的话, 按照正常的方法应该是创建数据表,创建数据库中映射的数据模型,然后 ...
随机推荐
- js对话框5秒自动消失
使用了easyui的对话框控件 <html> <head> <title>5秒后关闭对话框</title> <meta http-equiv=&q ...
- Winform软件,不要在线程里操作UI
对于Winform软件,不要在线程里操作UI,不要相信:StartForm.CheckForIllegalCrossThreadCalls = false; 于是,把所有的代码都改成主线程委托调用的方 ...
- [手机取证] Apple正在行动起来封堵后门?
在被爆出“后门”事件后,苹果似乎已经开始了自己的行动,在最新发布的iOS 8 Beta5版本中,iOS取证专家Zdziarski提及的众多后台服务中的packet sniffer服务已经被禁用,体现出 ...
- 使用智能指针来管理对象 (基于RAII)
////一个简单的防止内存泄露的例子//void test() { //使用RAII的特性管理资源 //当智能指针unique_ptr被销毁时,它指向的对象也将被销毁 //这里test函数返回后 p将 ...
- XE6 & IOS开发之免证书真机调试(2):连接真机并运行App(有图有真相)
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 连接真机前,请先确保真机 ...
- ./upload/forum.php
这是forum.php的全部代码,然后试着读一读,自己做做笔记. define('APPTYPEID', 2); define('CURSCRIPT', 'forum'); define(); 定义常 ...
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
- QT不同版本编译
QT发布了不同版本,有一些语法修改,需要修改代码.同时旧版本代码转换需要在pro文件中添加代码greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- Python-3 语法
#1 Tab键: 1)控制缩进 2)IDLE智能补全 #2 =等号: 1)=:表示赋值 2)==:表示判断 #3 流程图: print('..........小甲鱼_1..........') tem ...
- 关于android.view.WindowManager$BadTokenException问题出现以及解决的一些记录
1.出现 在app showdialog()时偶尔会出现,根据stackoverflow.com的描述,貌似是show的时候用作context的activity以及destroy了,,,一些异步操作会 ...