Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从Excel工作表传输到SQL Server数据库_C#_Asp.net_.net_Sql Server - Fatal编程技术网

C# 将数据从Excel工作表传输到SQL Server数据库

C# 将数据从Excel工作表传输到SQL Server数据库,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我有一个Excel表格,其中包含一些数据。我想将该数据从该aspx页面存储到SQL Server数据库中 我正在尝试存储数据,但出现如下错误: Microsoft Office Access数据库引擎无法打开或写入该文件。 它已被其他用户以独占方式打开,或者您需要查看和写入其数据的权限 这是我的代码: string excelConnectionString = @"provider=Microsoft.ACE.OLEDB.12.0;data source=" + path + ";extend

我有一个Excel表格,其中包含一些数据。我想将该数据从该aspx页面存储到SQL Server数据库中

我正在尝试存储数据,但出现如下错误:

Microsoft Office Access数据库引擎无法打开或写入该文件。 它已被其他用户以独占方式打开,或者您需要查看和写入其数据的权限

这是我的代码:

string excelConnectionString = @"provider=Microsoft.ACE.OLEDB.12.0;data source=" + path + ";extended properties='Excel 12.0;HDR=YES;'";

//Create Connection to Excel work book
OleDbConnection excelConnection =new OleDbConnection(excelConnectionString);
//Create OleDbCommand to fetch data from Excel
OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]",excelConnection);
excelConnection.Open();
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);
//Give your Destination table name
sqlBulk.DestinationTableName = "Excel_table";
sqlBulk.WriteToServer(dReader);
excelConnection.Close();

提前感谢…

您需要关闭Access数据库文件,然后代码才能访问数据/

您好,请检查以下事项:

1.不应打开您正在使用的Access文件

2.它不应是只读的


3.您应该对放置要访问的文件的文件夹具有读/写权限。

相应的用户帐户(默认情况下为网络服务)需要对Excel文件所在的文件夹具有修改权限。将权限添加到Excel文件所在的文件夹。

或者某些资源可能会访问数据库,这就是您遇到此问题的原因。请在下次尝试luckthanks快速重播时关闭您的电脑,但我已拥有该文件的权限AllReady您可以给出错误的总体描述(堆栈跟踪)?堆栈跟踪:[OLEDBEException(0x80040e37):Microsoft Office Access数据库引擎找不到对象“sheet1”。请确保该对象存在,并且正确拼写其名称和路径名。]System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)+1082864 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object&ExecuteSult)+247 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object&ExecuteSult)+194 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior,Object&ExecuteSult)+58 System.Data.OleDb.OleDbCommand.ExecuteReader()+6 filemanagement.WebForm2.BTN发送\单击(对象发送者,事件参数)在C:\Users\nxsol\Desktop\filemanagement\filemanagement\WebForm2.aspx.cs中:34 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+118 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+112System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)+13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+36 System.Web.UI.Page.ProcessRequestMain(布尔IncludeStages前同步点,布尔IncludeStages后同步点)+5563