if (!string.IsNullOrEmpty(fpPriceData.FileName))
{
if (fpPriceData.FileName.Contains(".csv"))
{
string strpath = System.IO.Path.GetTempPath() + "\\" + Guid.NewGuid().ToString("N") + ".csv";
fpPriceData.PostedFile.SaveAs(strpath);
#region code for using .csv files
//uncomment this code if we want to use .csv files
StreamReader str = new StreamReader(strpath);
DataTable dtEntireTable = oCOMClass.GetCompleteDataForCSV(str);
#endregion
}
}
public DataTable GetCompleteDataForCSV(StreamReader srdr)
{
// System.IO.StreamReader srdr = new System.IO.StreamReader(strm);
DataTable m_dtCSV = new DataTable();
String strLine = String.Empty;
Int32 iLineCount = 0;
do
{
strLine = srdr.ReadLine();
if (strLine == null)
{
break;
}
if (0 == iLineCount++)
{
m_dtCSV = this.CreateDataTableForCSVData(strLine);
}
else
{
this.AddDataRowToTable(strLine, m_dtCSV);
}
} while (true);
return m_dtCSV;
}
private DataTable CreateDataTableForCSVData(String strLine)
{
DataTable dt = new DataTable("CSVTable");
String[] strVals = strLine.Split(new char[] { ',' });
m_iColumnCount = strVals.Length;
int idx = 0;
foreach (String strVal in strVals)
{
String strColumnName = String.Format(strVal);
// String strColumnName = String.Format("Column-{0}", idx++);
dt.Columns.Add(strColumnName, Type.GetType("System.String"));
}
return dt;
}
private DataRow AddDataRowToTable(String strCSVLine, DataTable dt)
{
String[] strVals = strCSVLine.Split(new char[] { ',' });
Int32 iTotalNumberOfValues = strVals.Length;
// If number of values in this line are more than the columns
// currently in table, then we need to add more columns to table.
//if (iTotalNumberOfValues > m_iColumnCount)
//{
// Int32 iDiff = iTotalNumberOfValues - m_iColumnCount;
// for (Int32 i = 0; i < iDiff; i++)
// {
// String strColumnName = String.Format("Column-{0}", (m_iColumnCount + i));
// dt.Columns.Add(strColumnName, Type.GetType("System.String"));
// }
// m_iColumnCount = iTotalNumberOfValues;
//}
int idx = 1;
DataRow drow = dt.NewRow();
foreach (String strVal in strVals)
{
// String strColumnName = String.Format("Column-{0}", idx++);
drow[idx - 1] = strVal.Trim();
idx++;
}
dt.Rows.Add(drow);
return drow;
}