c#从Excel中读取数据并且插入到SQLSERVER数据库中

本文介绍了一种使用C#从Excel文件读取数据并将其导入到SQL Server数据库的方法。通过示例代码展示了如何建立数据库连接、执行事务处理及错误回滚机制。适用于需要批量导入Excel数据到SQL Server的应用场景。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;

namespace BaseInfo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button7_Click(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "Excel.xls";//要读取的Excel路径 我这里是放在了DEbug中
            System.Data.DataTable dt = ReadExcel(path);
            using (SqlConnection conn = new SqlConnection("数据库连接"))
            {
                conn.Open();
                SqlTransaction sqlTransaction = conn.BeginTransaction();
                //   将事务应用于Command  
                SqlCommand sqlCommand = new SqlCommand();
                sqlCommand.Connection = conn;
                sqlCommand.Transaction = sqlTransaction;
                try
                {
                    for (int i = 0; i < dt.Rows.Count - 1; i++)
                    {
                        sqlCommand.CommandText = sql语句;//mssql数据库
                        sqlCommand.ExecuteNonQuery();
                    }
                    //   成功提交  
                    sqlTransaction.Commit();
                    MessageBox.Show("ok");
                }
                catch (Exception ex)
                {
                    //   出错回滚  
                    sqlTransaction.Rollback();
                }
            }
        }

        public static DataTable ReadExcel(string filePath)
        {
            try
            {
                string strConn;
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  工作簿名称";
                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "表名");
                OleConn.Close();
                return OleDsExcle.Tables["表名"];
            }
            catch (Exception err)
            {
                MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/dain/archive/2012/07/02/2573497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值