На моем веб-сайте я читаю файл CSV и анализирую его. Теперь у CSV нет имен столбцов. Это просто необработанный список значений, разделенных запятыми.
Я беру этот файл и использую класс ODBCDataReader для чтения строк.
Проблема в том, что когда я получаю первое значение, он пропускает первую строку CSV. Вероятно, это связано с тем, что первая строка рассматривается как заголовок столбца. Но в моем случае нет заголовков столбцов. Поэтому каждый раз, когда пропускают мой первый ряд.
Как я могу получить первый ряд моего CSV?
Вот скриншот моего CSV:
Вот код, который я использую для анализа CSV.
public string CsvParser()
{
int _nNrRowsProccessed = 0;
string connectionString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + ConfigurationManager.AppSettings["CSVFolder"] + ";";
OdbcConnection conn = new OdbcConnection(connectionString);
try
{
conn.Open();
string strFileName = ConfigurationManager.AppSettings["CSVFile"];
string strSQL = "Select * from " + strFileName;
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = conn;
cmd.CommandText = strSQL;
cmd.CommandType = CommandType.Text;
OdbcDataReader reader = cmd.ExecuteReader();
string strLine = null;
// MasterCalendar_DB.OpenMySQLConnection();
while (reader.Read())
{
// insert data into mastercalendar
strLine = reader[0].ToString();
string strLine1 = reader[1].ToString();
string strLine2 = reader[2].ToString();
string strLine3 = reader[3].ToString();
string[] arLine = strLine.Split(';');
// string strAgencyPropertyID = arLine[0];
// DateTime dt = DateTime.Parse(arLine[1]);
// Int64 nDate = (Int64)Util.ConvertToUnixTimestamp(dt);
// String strAvailability = (arLine[2]);
_nNrRowsProccessed++;
// MasterCalendar_DB.Insert(strAgencyPropertyID, nDate, strAvailability);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
// MasterCalendar_DB.CloseMySQLConnection();
}
return "Success";
}