使用Visual Studio 2008将Excel内容导入到SQL Server表中
问题描述:
我正在创建一个应用程序,其中用户单击按钮,浏览Excel文件并将数据复制到数据库中创建的数据表中。使用Visual Studio 2008将Excel内容导入到SQL Server表中
我使用VS2008和SQL Server 2005
我写代码开放课程的文件,并在cs文件中创建一个DataTable及其dataColumns。我还应该做什么?
谢谢。
答
您可以编写下面的代码中的数据转储到SQL Server表
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("ImportFile.xls") + ";Extended Properties=""Excel 8.0;HDR=Yes;""";
using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand("Select * FROM [NameOfTheDataSheet$]", connection);
connection.Open();
using (DbDataReader dataReader = command.ExecuteReader())
{
string sqlConnectionString = "SQL Connection String";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelDataTable";
bulkCopy.WriteToServer(dataReader);
}
}
}
让我知道,如果你有不同的要求。
答
你可以像克里希纳建议的那样做,但只有在excel文件和数据库列中的列在数量和顺序上相同的情况下,该代码才能工作。为了便于维护和映射下来,我强烈建议行使用的LINQ到Excel和LINQ组合到SQL在这篇文章中:
http://solidcoding.blogspot.com/2008/01/linq-to-excel-sql-import.html
看一看我的answere [这里](HTTP:/ /stackoverflow.com/questions/4942464/excel-to-datatable/4942571#4942571) – Willem