如何将Excel数据批量导入SQL数据库?
如何将Excel数据批量导入SQL数据库? --------------------编程问答-------------------- 在程序中实现还是直接导入?如果直接导入的话用SQL的导入导出工具!程序中的话
--------------------编程问答-------------------- 利用fileupload结合ado.net来实现 --------------------编程问答-------------------- 先用oledb读取 数据,然后放入datatable,在循环插入数据库。 --------------------编程问答-------------------- 顶一楼的哦 --------------------编程问答-------------------- mark
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();
}
补充:.NET技术 , ASP.NET