C#读Excel文件并插入到数据库中(转自:http://www.cnblogs.com/michaelxu/archive/2009/03/12/1409761.html)
来源:互联网 发布:python frozenset 编辑:程序博客网 时间:2024/05/23 20:15
今天,有个项目需要核对一些数据,核对Excel文件中的某一列数据是否存在于数据库中的某个表,这查询起来实在太烦,虽然只有千把条记录,逐个到数据库里查,也要花个大半天时间。于是写了个小工具,将Excel文件中需要的列读出来,写入到数据库中,项目中用的是IBM DB2,这个可以根据需要进行修改,然后再进行表联合查询,就省事多了。
我访问Excel文件使用的方式是OleDB方式,没有用Office组件。
首先加入namespace:
using System.Data.OleDb;
定义连接字符串:
string filePath = @"c:\employee.xls";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
选择Excel文件中的一个sheet,比如叫“EmployeeInfo”:
string strSheetName = "EmployeeInfo";
string strExcel = "select * from [" + strSheetName + "$] ";
打开连接,读取Excel文件中数据到Dataset中,然后关闭连接:
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);
DataSet ds = new DataSet();
adapter.Fill(ds, "data");
conn.Close();
写到DB2数据库中,假定数据库已经建好,并且表TEST也已经建好:
string connString = "Provider=IBMDADB2;Database=TOOLSDB" +
";HOSTNAME=localhost;PROTOCOL=TCPIP;PORT=50000;uid=db2admin;pwd=123456;";
OleDbConnection db2Conn = new OleDbConnection(connString);
OleDbCommand db2Comm = new OleDbCommand();
db2Conn.Open();
db2Comm.Connection = db2Conn;
db2Comm.CommandTimeout = 600;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string eID = ds.Tables[0].Rows[i]["员工号"].ToString();
string eName = ds.Tables[0].Rows[i]["员工姓名"].ToString();
string eDate = ds.Tables[0].Rows[i]["入职日期"].ToString();
string ePosition = ds.Tables[0].Rows[i]["职位"].ToString();
db2Comm.CommandText = "INSERT INTO TEST(ID, Name, Date, Position) VALUES('" +
eID.ToString() + "', '" + eName.ToString() + "', '" + eDate.ToString() + "', '" +
ePosition.ToString () + "');";
db2Comm.ExecuteNonQuery();
}
db2Conn.Close();
这样就把Excel表中的数据插入到数据库中了。
- C#读Excel文件并插入到数据库中(转自:http://www.cnblogs.com/michaelxu/archive/2009/03/12/1409761.html)
- c# 4.0新特性一览(转自:http://www.cnblogs.com/palo/archive/2009/03/01/1400949.html)
- Codeigniter+PHPExcel中导出数据到Excel文件//http://www.cnblogs.com/jiji262/archive/2012/03/27/2419989.html
- c#的迭代器,转自http://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html
- c#编写网络电话 转自http://www.cnblogs.com/dfsxh/archive/2008/12/16/1355886.html
- c#编写网络电话 转自http://www.cnblogs.com/dfsxh/archive/2008/12/16/1355886.html
- C#写文件常用的五种方法(转自:http://www.cnblogs.com/kiddo/archive/2008/03/17/1110061.html)
- 本文转自:http://www.cnblogs.com/Charles2008/archive/2009/09/03/1559896.html
- Oracle中TO_DATE格式 [转自http://www.cnblogs.com/ajian/archive/2009/03/25/1421063.html]
- NDbUnit学习总结(转自:http://www.cnblogs.com/icebutterfly/archive/2009/05/12/1454869.html)
- C# 线程操作 转自http://www.cnblogs.com/mugua604/archive/2008/04/27/1172692.html
- 用C#读写ini配置文件(转自:http://www.cnblogs.com/zzyyll2/archive/2007/11/06/950584.html)
- js call()用法 转载自--http://www.cnblogs.com/sweting/archive/2009/12/21/1629204.html
- 转自http://www.cnblogs.com/dirichlet/archive/2011/03/16/1986251.html
- jQuery动态表格(转自:http://www.cnblogs.com/Zjmainstay/archive/2012/07/12/jQuery_autoAddDeleteTableTr.html)
- vimrc 转自 http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
- 超链接按钮(转自http://www.cnblogs.com/cxy521/archive/2008/01/22/1048621.html)
- 敏捷开发(转自:http://www.cnblogs.com/blusehuang/archive/2007/10/17/926802.html)
- 【MSSql2000】游标
- 1251 trie树(返回前缀数)(我对find函数进行啦修改)
- 【Validation】正则表达式
- DM8168评估板上供电电源的设计
- 值调用和引用调用
- C#读Excel文件并插入到数据库中(转自:http://www.cnblogs.com/michaelxu/archive/2009/03/12/1409761.html)
- Dotnetnuke Portal的皮肤系统
- SQL2000的系统表sysproperties在SQL2005中 无效的 问题
- 正则表达式表
- <Ibatis in action>中使用动态SQL的一个小细节提示(与CDATA)
- 基于S5pv210--IO口模拟I2C总线Linux系统下驱动设计
- 路由器登陆密码暴力破解程序
- Android sqlite3 CommandLine
- Unix 学习笔记(一)