将Excel数据快速大批量导入数据库的代码

本文介绍了两种快速将Excel数据导入SQL Server的方法。一种是在程序中使用ADO.NET,通过连接字符串和数据集操作实现;另一种是在查询分析器中利用SQL语句直接导入。此外,还提及了使用SqlBulkCopy类进行批量插入,以提高数据导入效率。
摘要由CSDN通过智能技术生成

两种途径将数据从EXCEL中导入到SQL SERVER。
一、在程序中,用ADO.NET。代码 如下:

//连接串
string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=” + [EXCEL文件,含路径] + “;”;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, “TABLE”});
DataSet ds = new DataSet();

//一个EXCEL文件可能有多个工作表,遍历之
foreach( DataRow dr in dtSchema.Rows )
{
string table = dr[“TABLE_NAME”].ToString();
string strExcel = “SELECT * FROM [” + table + “]”;
ds.Tables.Add(table);
OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn);
myCommand.Fill(ds,table);
}
conn.Close();
这样,读取出来的数据就藏在DataSet里了。
采用这种方式,数据库 所在机器不必装有EXCEL

二、在查询分析器里,直接写SQL语句:

如果是导入数据到现有表,则采用
INSERT INTO 表 SELECT * FROM OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0’
,‘Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)

如果是导入数据并新增表,则采用
SELECT * INTO 表 FROM OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0’
,‘Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)

以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以

INSERT INTO 表(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0’
,‘Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)

其实可以将OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0’
,‘Excel 5.0;HDR=YES;DATABASE=c:\test.xls’,sheet1$)当成一个表,例如我就写过这样一个句子:

INSERT INTO eval_channel_employee(channel,employee_id)
SELECT CASE a.渠道 WHEN ‘DIY’ THEN 1 WHEN ‘RDC’ THEN 0 WHEN ‘KCM’ THEN 2 ELSE 3 END
,b.id</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值