如何在c#中的DataRow或GridView中用逗号分隔的文本文件中显示文本

时间:2011-09-30 15:01:34

标签: c# winforms csv datagridview

我在C#中创建了一个应用程序。我想在DataRow或GridView中用逗号分隔的文本文件中显示文本。

我正在使用此代码在列表框中显示文本

private void button1_Click(object sender, EventArgs e)
{
    var file = File.OpenText("C:\\File.txt"); 
    string line;
    bool flag = true;
    while ((line = file.ReadLine()) != null)
    {
        listBox1.Items.Add(new { srno= line, Date= "descr", Time= DateTime.Now ,symbol = Symbol  });
    }
}

但是对于其他人来说,了解它的显示效果并不好。我想要显示这样的内容

点击此链接http://i.stack.imgur.com/LEmdz.jpg

如果有人能帮助我,我们将非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:1)

傻我看起来这是WinForms而不是asp.net。得到了重视。我会把这个留给其他人。

您需要将文件转换为DataTable。在http://www.akamarketing.com/blog/256-csv-datatable.html

有一个很好的例子

它更像是一种通用的方法而不是任何东西。

以下是您可以尝试解决的未经测试的示例。

DataTable dataTable = new DataTable();
dataTable.Columns.Add("Srno");
dataTable.Columns.Add("Date");
dataTable.Columns.Add("Time");
dataTable.Columns.Add("Symbol");

while ((line = file.ReadLine()) != null)
{
    DataRow row = dataTable.NewRow();
    string[] s =  line.Split(',');
    row["Srno"] = s[0];
    row["Date"] = s[1];
    row["Time"] = s[2];
    row["Symbol"] = s[3];
}

//Add to your GridView that is in your aspx file
gridView.DataSource = dataTable;
gridView.DataBind();

答案 1 :(得分:0)

定义一个具有四个公共Foo - srno,日期,时间和符号的类(比如properties)。使用String.Split方法解析逗号分隔的字符串,构造Foo类的对象并将其追加到List<Foo>。最后将List<Foo>对象绑定到GridView控件。

演示:

public class Foo
{
  public string SrNo {get;set;}
  public string Date {get;set;}
  public string Time {get;set;}
  public string Symbol {get;set;}
}

List<Foo> list=new List<Foo>();

while ((line = file.ReadLine()) != null)
{
    string []ar = line.Split(',');
    list.Add(new Foo()
       {
         SrNo=ar[0],
         Date=ar[1],
         Time=ar[2],
         Symbol=ar[3]
       });
}
//Bind the list
dataGridView1.DataSource=list;