c#将Excel数据导入到数据库的实现代码

c#将excel数据导入到数据库的实现代码

假如Excel中的数据如下:

403.jpg

数据库建表如下:

404.jpg

其中Id为自增字段:

405.jpg

代码:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.OleDb;using System.Configuration;using System.Data.SqlClient;namespace InExcelOutExcel{    public partial class ExcelToDB : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            FileSvr fileSvr = new FileSvr();            System.Data.DataTable dt = fileSvr.GetExcelDatatable            ("C:\Users\NewSpring\Desktop\Demo\InExcelOutExcel\InExcelOutExcel\excel\ExcelToDB.xlsx", "mapTable");            fileSvr.InsetData(dt);        }    }    class FileSvr    {        ///         /// Excel数据导入Datable        ///         ///         ///         ///         public System.Data.DataTable GetExcelDatatable(string fileUrl, string table)        {            //office2007之前 仅支持.xls            //const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";            //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;            const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";            System.Data.DataTable dt = null;            //建立连接            OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));            try            {                //打开连接                if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)                {                    conn.Open();                }                System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);                //获取Excel的第一个Sheet名称                string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();                //查询sheet中的数据                string strSql = "select * from [" + sheetName + "]";                OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);                DataSet ds = new DataSet();                da.Fill(ds, table);                dt = ds.Tables[0];                return dt;            }            catch (Exception exc)            {                throw exc;            }            finally            {                conn.Close();                conn.Dispose();            }        }        ///         /// 从System.Data.DataTable导入数据到数据库        ///         ///         ///         public int InsetData(System.Data.DataTable dt)        {            int i = 0;            string lng = "";            string lat = "";            string offsetLNG = "";            string offsetLAT = "";            foreach (DataRow dr in dt.Rows)            {                lng = dr["LNG"].ToString().Trim();                lat = dr["LAT"].ToString().Trim();                offsetLNG = dr["OFFSET_LNG"].ToString().Trim();                offsetLAT = dr["OFFSET_LAT"].ToString().Trim();                //sw = string.IsNullOrEmpty(sw) ? "null" : sw;                //kr = string.IsNullOrEmpty(kr) ? "null" : kr;                string strSql = string.Format("Insert into DBToExcel (LNG,LAT,OFFSET_LNG,OFFSET_LAT)                 Values ('{0}','{1}',{2},{3})", lng, lat, offsetLNG, offsetLAT);                string strConnection = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();                SqlConnection sqlConnection = new SqlConnection(strConnection);                try                {                    // SqlConnection sqlConnection = new SqlConnection(strConnection);                    sqlConnection.Open();                    SqlCommand sqlCmd = new SqlCommand();                    sqlCmd.CommandText = strSql;                    sqlCmd.Connection = sqlConnection;                    SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();                    i++;                    sqlDataReader.Close();                }                catch (Exception ex)                {                    throw ex;                }                finally                {                    sqlConnection.Close();                }                //if (opdb.ExcSQL(strSql))                //    i++;            }            return i;        }    }}

登录后复制

运行结果:

406.jpg

以上就是c#将Excel数据导入到数据库的实现代码的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2552398.html

(0)
上一篇 2025年3月6日 06:26:58
下一篇 2025年3月6日 06:27:06

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论