将Excel导入到数据库

Excel导入数据库
本文介绍了一种从Excel文件读取数据并将其导入SQL数据库的方法。首先使用ADO.NET通过OLE DB提供程序连接Excel文件,并读取指定工作表的数据到DataTable中。然后,遍历DataTable并将每条记录插入到数据库表中。

//读取Excel

public System.Data.DataTable ExcelToDataTable(string excelPath)  

        {
            string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelPath + ";Extended Properties='Excel 8.0;IMEX=1'";
            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);
            string strCom = "SELECT * FROM [Sheet1$]";
            System.Data.DataTable dt = new System.Data.DataTable();
            try
            {
                Conn.Open();
                System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
                DataSet ds = new DataSet();
                myCommand.Fill(ds, "[Sheet1$]");
                Conn.Close();
                dt = ds.Tables[0];
                
            }
            catch 
            {
                Response.Write("<script>alert('读取失败!')</script>");
            }
            return  dt;

        }

//将Excel添加到数据库

try
                {
                    SqlConnection con = new SqlConnection();
                    con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                    con.Open();


                    System.Data.DataTable dt = ExcelToDataTable(Server.MapPath("111.xls"));
                    for (int i = 0; i <dt.Rows.Count; i++)
                    {
                        string sql = "insert into book values(@bid,@title,@author)";
                        SqlDataAdapter da = new SqlDataAdapter(sql, con);
                        da.SelectCommand.Parameters.AddWithValue("bid", dt.Rows[i][0].ToString());
                        da.SelectCommand.Parameters.AddWithValue("title", dt.Rows[i][1].ToString());
                        da.SelectCommand.Parameters.AddWithValue("author", dt.Rows[i][2].ToString());
                        da.SelectCommand.ExecuteNonQuery();
                    }
                    con.Close();
                    Response.Write("<script>alert('导入成功!')</script>");
                }
                catch
                {
                    Response.Write("<script>alert('导入失败!')</script>");
                }
                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值