TAB上的分割线和GridView中的显示

时间:2014-05-16 14:06:11

标签: c# asp.net gridview

我在使用某些代码时遇到了一些问题。我有一个' .log'我希望在GridView的不同列中显示文件的每一列的文件。我尝试了以下代码,但它只生成一个列,然后将所有数据放入其中。任何人都可以发现我的代码出了什么问题。或者是否有更好的方法将日志文件加载到网页中,以便我可以看到数据并将TimeData标记转换为正常的TimeDate格式,以便我们可以更好地理解日志文件。

  private static DataTable GetDataTableFromFile(string csvfilePath)
    {
        DataTable fileData = new DataTable();
        using (TextFieldParser fileReader = new TextFieldParser(csvfilePath))
        {
            fileReader.SetDelimiters(new String[] { "\t" });
            fileReader.HasFieldsEnclosedInQuotes = true;

            //Read columns from CSV file, remove this line if columns not exits  
            string[] colFields = fileReader.ReadFields();

            foreach (string column in colFields)
            {
                DataColumn datecolumn = new DataColumn(column);
                datecolumn.AllowDBNull = true;
                fileData.Columns.Add(datecolumn);
            }

            while (!fileReader.EndOfData)
            {
                string[] fieldData = fileReader.ReadFields();
                //Making empty value as null
                for (int i = 0; i < fieldData.Length; i++)
                {
                    if (fieldData[i] == "")
                    {
                        fieldData[i] = null;
                    }
                }
                fileData.Rows.Add(fieldData);
            }
        }
        return fileData;
    }

任何建议都会很棒。

亲切的问候

2 个答案:

答案 0 :(得分:0)

如果您使用其中一个标准库,例如Log4NetLogging Application Block,那么您可以使用Loupe

即使您没有使用其中一个标准日志记录库,您仍然可以编写自己的解析器,以便Loupe可以处理您的文件格式。

使用现有的软件可能更好,因为它可以做你想要的,甚至更多。

答案 1 :(得分:0)

如果您确定每行的分隔符数量Tab相同,那么您可以执行以下操作(在while loop中):

while (!fileReader.EndOfData)
        {
            string[] fieldData = fileReader.ReadFields();

            if(fieldData.Length > 0)
            {
               DataRow dr = dt.NewRow();               
               for (int i = 0; i < fieldData.Length; i++)
               {                   
                   dr[i] =  fieldData[i];
               }
               fileData.Rows.Add(dr);
            }
        }