Не могу прочитать из CSV - PullRequest
0 голосов
/ 24 января 2019

Я следовал инструкции Джима Скотта , чтобы прочитать CSV в DataTable со следующим кодом:

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 в корневой каталог и попытался выполнить следующие действия безрезультатно!

  1. Изменено Data Source на localhost, (localhost), ~, ~\\.

  2. Изменено Report.csv на Report.

  3. Наконец, измените Data Source на Directory.GetCurrentDirectory(), чтобы подключить его правильно.

Проблема: может НЕ найти Report.csv!

Я хочу, чтобы это была веб-страница, поэтому мне нужен способ для OleDbConnection подключения к localhost и указания на корневой каталог!

Было бы ОЧЕНЬ хорошо, если бы кто-нибудь научил меня, как это сделать!

Кто-нибудь, пожалуйста, будьте так добры и скажите мне, где я сделал не так и как правильно его настроить!

Очень ценится !!!

1 Ответ

0 голосов
/ 24 января 2019

Скорее всего, это проблема пути.Можете ли вы попробовать сделать следующее:

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);
}

Обновление:

Вместо Directory.GetCurrentDirectory() вы можете использовать HttpContext.Current.Server.MapPath("~"), который даст путь к текущемукорень.

Если ваш веб-сайт:

C:\Web\shop

, и вы заходите на веб-страницу: http://localhost:8080/Application/users/userdetails.aspx

 1. Server.MapPath(".") returns C:\Web\shop\users 
 2. Server.MapPath("~") returns C:\Web\shop\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...