C# 使用Visual Studio 2008将Excel内容导入SQL Server表
我正在创建一个应用程序,用户单击按钮,浏览Excel文件,然后将数据复制到数据库中创建的数据表中 我正在使用VS2008和SQLServer2005 当然,我编写了打开该文件的代码,并在.cs文件中创建了一个dataTable及其dataColumns。我还应该做什么C# 使用Visual Studio 2008将Excel内容导入SQL Server表,c#,visual-studio-2008,sql-server-2005,excel,C#,Visual Studio 2008,Sql Server 2005,Excel,我正在创建一个应用程序,用户单击按钮,浏览Excel文件,然后将数据复制到数据库中创建的数据表中 我正在使用VS2008和SQLServer2005 当然,我编写了打开该文件的代码,并在.cs文件中创建了一个dataTable及其dataColumns。我还应该做什么 谢谢。您可以像下面这样编写代码,将数据转储到SQL Server表中 string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="
谢谢。您可以像下面这样编写代码,将数据转储到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,如本文所述: 看看我的答案