Webpart vs WinFormsApp - анализ CSV с другим результатом
Я создаю веб-часть Sharepoint, которая извлекает данные из файла CSV. Файл CSV находится на сервере (D:\IBV_CAN.csv).
Вот код, который должен загрузить данные в DataTable:
private bool importCsv()
{
try
{
csvFullpath = csvFileDir + csvFileName;
importData = CSVParser.ParseCSV(csvFullpath);
if (importData == null)
{
msg += "The file " + csvFullpath + " does not exist!<br />";
return false;
}
else
{
msg += "<br />CSV import succesful. Number of rows: " + importData.Rows.Count + "<br />";
}
}
catch (Exception ex)
{
errormsg += "<br /><br />Error! (Code: 100)<br />" + ex;
return false;
}
return true;
}
class CSVParser
{
public static DataTable ParseCSV(string path)
{
if (!File.Exists(path))
return null;
string full = Path.GetFullPath(path);
string file = Path.GetFileName(full);
string dir = Path.GetDirectoryName(full);
//create the "database" connection string
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + dir + "\\\";"
+ "Extended Properties=\"text;HDR=No;FMT=Delimited\"";
//create the database query
string query = "SELECT * FROM " + file;
//create a DataTable to hold the query results
DataTable dTable = new DataTable();
//create an OleDbDataAdapter to execute the query
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);
try
{
//fill the DataTable
dAdapter.Fill(dTable);
}
catch (InvalidOperationException /*e*/)
{ }
dAdapter.Dispose();
return dTable;
}
}
importData - это DataTable, объявленный ранее. Значения строк csvFileDir и csvFileName равны "D:\" и "IBV_CAN.csv" соответственно. После вызова функции importCsv() из веб-части CreateChildControls() строка msg отображается как текст метки. То же самое касается строки errormsg. Я получаю следующий результат:
CSV импорт успешно завершен. Количество рядов: 0
errormsg это "".
Я протестировал ту же самую функцию CSVParser.ParseCSV в приложении Windows Forms:
data= CSVParser.ParseCSV(csvFullpath);
label2.Text = "Number of rows: " + data.Rows.Count + "\n";
Используя тот же csvFullpath, результат:
Количество рядов: 1008
Оба решения используют.NET Framework 3.5 и работают на одном компьютере. Как мне изменить код веб-части, чтобы он получал данные CSV так же, как это делает WinFormsApp?