你的位置:首页 > ASP.net教程

[ASP.net教程]c#将excel中数据批量导入数据库对应表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
using System.IO;
using System.Data.SqlClient;

namespace ImportExcelToSqlServer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// tb1:工作簿名称 tb2:需要导入的数据库表名 tb3:数据库连接字符串
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Import_Click(object sender, EventArgs e)
{
//string connString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString.ToString();
string connString = tb3.Text;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
TransferData(fd.FileName, tb1.Text, connString);
}
}
public void TransferData(string strCon, string sheetName, string connectionString)
{
DataSet ds = new DataSet();
try
{
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strCon + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
//获取sheet页全部数据
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = string.Format("select * from [{0}$]", sheetName);
myCommand = new OleDbDataAdapter(strExcel, connStr);
myCommand.Fill(ds, sheetName);
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
{
DataTable dt = ds.Tables[0];
bcp.BatchSize = 100;//每次传输的行数
bcp.NotifyAfter = 100;//进度提示的行数
bcp.DestinationTableName = tb2.Text;//需要导入的数据库表名

//excel表头与数据库列对应关系
bcp.ColumnMappings.Add("物料编码", "CODE");
bcp.ColumnMappings.Add("物料名称", "NAME");
bcp.ColumnMappings.Add("状态", "STATUS");
bcp.ColumnMappings.Add("物料说明", "MEMO");
bcp.ColumnMappings.Add("创建人帐号", "CREATOR");
bcp.ColumnMappings.Add("创建时间", "CREATEDATE");
bcp.ColumnMappings.Add("计量单位", "Unit");
bcp.ColumnMappings.Add("材质", "Material");
bcp.ColumnMappings.Add("库存最大量", "StockUp");
bcp.ColumnMappings.Add("库存最小量", "StockDown");
bcp.ColumnMappings.Add("类别编码", "MATERSTRING1");
bcp.ColumnMappings.Add("规格", "MATERSTRING2");
bcp.ColumnMappings.Add("型号", "MATERSTRING3");
bcp.ColumnMappings.Add("助记码", "MATERSTRING4");
bcp.ColumnMappings.Add("提报单位编码", "MATERSTRING5");
bcp.ColumnMappings.Add("类别编码", "MATERSTRING6");
bcp.WriteToServer(dt);
MessageBox.Show("成功");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}


巴厘岛旅游怎么样几月去巴厘岛旅游最便宜怎样去巴厘岛旅游7月巴厘岛旅游巴厘岛旅游多少钱一人如何在核心景区内游玩? 金陵城下齿留香 搜寻秦淮风味美食 四川秋季哪里景色最美? 香山赏秋有什么好的景色?具体什么时间去比较好? 广东东莞观音山佛教音乐会几号开始?东莞观音山佛教音乐会哪天? 2015东莞观音山佛教音乐会什么时候?观音山佛教音乐会有什么好玩的? 深圳山海音乐节门票多少钱?山海音乐节嘉年华有什么有特色? 东部华侨城水世界小孩可以玩吗?深圳东部华侨城水世界怎么收费? 2015微山湖红荷湿地五一活动?滕州微山湖红荷湿地游玩攻略? 五一微山湖红荷湿地景区优惠活动?滕州微山湖红荷湿地五一门票免费吗? 泉城欧乐堡主题乐园项目介绍?齐河泉城欧乐堡里面有什么? 泉城欧乐堡有什么表演节目?齐河泉城欧乐堡演出节目介绍? 海南万宁兴隆热带花园自驾游怎么走呢? 2015暑假去海南哪些地方比较适合避暑? 三亚蜈支洲岛怎么走? 海南兴隆热带花园都有哪些植物? 5-22-CD34L Datasheet 5-22-CD34L Datasheet 5-22-CD35 Datasheet 5-22-CD35 Datasheet 5-22-CD35-10 Datasheet 5-22-CD35-10 Datasheet 河源出发去保加利亚旅游 河源出发去保加利亚旅游 河源出发去保加利亚旅游 河源出发去北海旅游 河源出发去北海旅游 河源出发去北海旅游 河源出发去北京旅游 河源出发去北京旅游 河源出发去北京旅游