读取csv文件使用

本文关键字:文件 csv 读取 | 更新日期: 2023-09-27 18:08:48

我使用下面的两个代码读取csv文件,但它返回相同的错误。

'E:'business'business'Document'4112013'20580.csv' is not a valid path.  Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

我无法解决这个问题。请帮我解决这个问题

SaveLocation = @"E:'business'business'Document'4112013'20580.csv";
string connStr = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=@" + SaveLocation + ";Extended Properties='"Text;HDR=YES;FMT=Delimited'"";
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
// give full path to the file here
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM " + SaveLocation, conn);
DataSet ds = new DataSet("QueryCSV");
adapter.Fill(ds);
DataTable dt = ds.Tables[0];

System.Data.OleDb.OleDbDataAdapter MyCommand = default(System.Data.OleDb.OleDbDataAdapter);
System.Data.OleDb.OleDbConnection MyConnection = default(System.Data.OleDb.OleDbConnection);
//MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0; " + "data source=" + SaveLocation + "; " + "Extended Properties=Excel 12.0;");
//MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0; " + "data source=" + SaveLocation + "; " + "Extended Properties='csv;HDR=Yes;FMT=Delimited(,)';");
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + SaveLocation + ";Extended Properties='"Text;HDR=YES;FMT=Delimited'"");
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet5$]", MyConnection);
ds = new System.Data.DataSet();
MyCommand.Fill(ds);

读取csv文件使用

这更像是安全问题,而不是错误路径问题。你不能从ASP。. NET web应用程序访问硬盘驱动器的任何部分。这是出于安全原因,因此潜在的攻击者将无法做同样的事情,以防您的站点的安全性被破坏。

将csv文件放入web应用程序子目录,并使用以下属性之一的组合访问它:

HttpRuntime.AppDomainAppPath

或与

连用
HttpContext.Current.Request.PhysicalApplicationPath
拥有相对而非固定的路径会给您带来其他好处,即在将应用程序上传到服务器或上传到另一个服务器后,您无需为此更改任何内容。一切都和以前一样。

更多信息请查看此处

你把这个作为文件路径,它会工作。

string strDataSource = "E:'business'business'Document'4112013'20580.csv";
strDBFile = strDataSource.Substring(0, strDataSource.LastIndexOf(''''));
mCon.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strDBFile + ";Extended Properties='"Text;Excel 12.0;HDR=No;IMEX=1;FMT=Delimited'"";