C# Can';无法从CSV读取数据
我随后用以下代码将CSV读入一个C# Can';无法从CSV读取数据,c#,asp.net,csv,datatable,C#,Asp.net,Csv,Datatable,我随后用以下代码将CSV读入一个数据表: private OleDbConnection CNN = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Directory.GetCurrentDirectory()+";Extended Properties=\"Text;HDR=Yes\""); private OleDbCommand CMD; p
数据表
:
private OleDbConnection CNN = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Directory.GetCurrentDirectory()+";Extended Properties=\"Text;HDR=Yes\"");
private OleDbCommand CMD;
private OleDbDataAdapter ADT;
private DataTable DT=new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
CNN.Open();
CMD = new OleDbCommand(@"select * from [Report.csv]", CNN);
ADT = new OleDbDataAdapter(CMD);
ADT.Fill(DT);
}
我已经将Report.csv
放在根目录下,并尝试执行以下操作,但没有效果
数据源
更改为本地主机
,(本地主机)
,~
,~\
Report.csv
更改为Report
数据源
更改为目录.GetCurrentDirectory()
,以使其正确连接
Report.csv
我希望这是一个网页,所以我需要的是一种方法,让OLEDB连接连接到本地主机,并指向根目录
如果有人能教我怎么做那就太好了
有人请这么好心,告诉我我哪里做错了,如何正确设置它
非常感谢 很可能是路径问题。您可以尝试执行以下操作:
protected void Page_Load(object sender, EventArgs e)
{
CNN.Open();
string fileName = "C:\Users\username\Desktop\Report.csv";
string sqlQuery = @"select * from [" + fileName + "]";
CMD = new OleDbCommand(sqlQuery, CNN);
ADT = new OleDbDataAdapter(CMD);
ADT.Fill(DT);
}
更新:
您可以使用HttpContext.Current.Server.MapPath(“~”)
,而不是Directory.GetCurrentDirectory()
,它将给出当前根目录的路径
如果您的网站位于:
C:\Web\shop
您正在访问以下网页:
很可能,这是一个路径问题。您可以尝试执行以下操作:
protected void Page_Load(object sender, EventArgs e)
{
CNN.Open();
string fileName = "C:\Users\username\Desktop\Report.csv";
string sqlQuery = @"select * from [" + fileName + "]";
CMD = new OleDbCommand(sqlQuery, CNN);
ADT = new OleDbDataAdapter(CMD);
ADT.Fill(DT);
}
更新:
您可以使用HttpContext.Current.Server.MapPath(“~”)
,而不是Directory.GetCurrentDirectory()
,它将给出当前根目录的路径
如果您的网站位于:
C:\Web\shop
您正在访问以下网页:
根目录GetCurrentDirectory()。将它放在'c:\'中,并将代码更改为匹配的,并确保它有效。检查
目录.GetCurrentDirectory()返回的值,并将其存储在那里。你似乎只是希望你把文件放在正确的地方。谢谢你的建议。但请注意,我的标签包括ASP.net!我打算将其发布为一个网站,因此不幸的是,解决方案没有放在C:.目录中那么简单。GetCurrentDirectory()可能会给出当前asp.net网页所在的目录。OK,让我试试!谢谢根目录GetCurrentDirectory()。将它放在'c:\'中,并将代码更改为匹配的,并确保它有效。检查目录.GetCurrentDirectory()返回的值,并将其存储在那里。你似乎只是希望你把文件放在正确的地方。谢谢你的建议。但请注意,我的标签包括ASP.net!我打算将其发布为一个网站,因此不幸的是,解决方案没有放在C:.目录中那么简单。GetCurrentDirectory()可能会给出当前asp.net网页所在的目录。OK,让我试试!谢谢可能还有权限问题。谢谢!这就解决了!但是编码太离谱了!让我去看看能不能找到什么!一个参考链接将不胜感激!看看它是否有用:(用4张赞成票参考答案)…我通过在连接字符串的扩展属性下添加CharacterSet=65001
解决了这个问题!可能还有权限问题。谢谢!这就解决了!但是编码太离谱了!让我去看看能不能找到什么!一个参考链接将不胜感激!看看它是否有用:(用4张赞成票参考答案)…我通过在连接字符串的扩展属性下添加CharacterSet=65001
解决了这个问题!