使用VS.net中的ASP.net&C#将Excel 2016数据导入本地数据库

我正在尝试使用ASP.net&C#将Excel 2016中的数据导入到在VS2015中创build的localDB中。

下面是我的代码,但是当我运行它,它给了我这个错误:

“与SQL Serverbuild立连接时发生networking相关或特定于实例的错误服务器未find或无法访问确认实例名称正确并且SQL Serverconfiguration为允许远程连接(provider: SQLnetworking接口,错误:50 – 发生本地数据库运行时错误。无法创build自动实例。请参阅Windows应用程序事件日志以获取错误详细信息。

我可以使用服务器资源pipe理器连接到我的localDB。

谁能告诉我这里有什么问题?

if (File.Exists(savePath)) { //string strConnection = "Data Source=MySystem;Initial Catalog=MySamplesDB;Integrated Security=True"; string strConnection = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\inetpub\wwwroot\WebSite\App_Data\Database.mdf;Integrated Security=True;Context Connection=False"; string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + savePath + ";Extended Properties=Excel 12.0;Persist Security Info=False;"; OleDbConnection excelConnection = new OleDbConnection(excelConnectionString); OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", excelConnection); excelConnection.Open(); OleDbDataReader dReader; dReader = cmd.ExecuteReader(); SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection); sqlBulk.DestinationTableName = "Robot"; sqlBulk.WriteToServer(dReader); excelConnection.Close(); } 

肯定的错误来自SQL的连接string。

 use (LocalDB)\\MSSQLLocalDB instead of (LocalDB)\MSSQLLocalDB 

请注意所需的两个反斜杠,因为\ v和\ t表示特殊字符。

当您的mdf文件在AppData文件夹中时,也不需要使用完整的数据库path,而只需使用fileName.mdf。

如果你不确定你的实例MSSQLLocalDB那么

 use Server=(localdb)\\v11.0;Integrated Security=true;Database=filename.mdf; 

希望能帮助到你。