当前位置:编程学习 > C#/ASP.NET >>

如何将Excel数据批量导入SQL数据库?

如何将Excel数据批量导入SQL数据库? --------------------编程问答-------------------- 在程序中实现还是直接导入?如果直接导入的话用SQL的导入导出工具!
程序中的话

string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
                SqlConnection sqlConnection1 = new SqlConnection("Server=.\\SQL;Database=***;Uid=sa;Pwd=123;Max Pool Size = 512;Pooling=False; Connect Timeout=6000;");
                OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
                try
                {
                   
                    oleDbConnection.Open();
                    sqlConnection1.Open();
                    //获取excel表
                    
                    DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素
                    string tableName = dataTable.Rows[0][2].ToString().Trim();
                    tableName = "[" + tableName.Replace("'", "") + "]";
                    //利用SQL语句从Excel文件里获取数据
                    //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;
                    string query = "SELECT 工程,姓名  FROM " + tableName;
                    DataSet dataSet = new DataSet();
                    OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, connExcel);

                    oleAdapter.Fill(dataSet, "gch_Class_Info");

                    //从excel文件获得数据后,插入记录到SQL Server的数据表
                    DataTable dataTable1 = new DataTable();

                    SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT  UserID,
                JGID FROM ZJGHX", sqlConnection1);

                    SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);

                    sqlDA1.Fill(dataTable1);
                    foreach (DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)
                    {
                        DataRow dataRow1 = dataTable1.NewRow();
                        dataRow1["UserID"] = dataRow["工程"];
                        dataRow1["JGID"] = dataRow["姓名"];

                        dataTable1.Rows.Add(dataRow1);
                    }
                    Response.Write("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
                    sqlDA1.Update(dataTable1);

                    oleDbConnection.Close();
                    sqlConnection1.Close();
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
                finally
                {
                    oleDbConnection.Close();
                    sqlConnection1.Close();
                }

--------------------编程问答-------------------- 利用fileupload结合ado.net来实现 --------------------编程问答-------------------- 先用oledb读取 数据,然后放入datatable,在循环插入数据库。 --------------------编程问答-------------------- 顶一楼的哦 --------------------编程问答-------------------- mark
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,