从* .txt导入到没有2列的DataGridView

时间:2016-12-07 10:21:35

标签: c# datagridview

抱歉我的英文。我是c#的新手。我有问题。我有数据文件txt:

 20160101    PL01    000000000000000003    PL02    TO    0000000001           1.720        0000000001    0000000002

Finnaly我希望将这些数据导入DataGridView,但只导入1,4,7,8,9列,而不包含2,3,5和6列。

我尝试开始导入所有数据,但我有错误

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication10
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.IO.StreamReader file = new System.IO.StreamReader("C:\\Users\\terrazo\\Desktop\\test1.txt");
            string[] columnnames = file.ReadLine().Split(' ');
            DataTable dt = new DataTable();

            foreach (string c in columnnames)
            {
                dt.Columns.Add(c);
            }
            string newline;
            while ((newline = file.ReadLine()) != null)
            {
                DataRow dr = dt.NewRow();
                string[] values = newline.Split(' ');
                for (int i = 0; i < values.Length; i++)
                {
                    dr[i] = values[i];
                }
                dt.Rows.Add(dr);
            }
            file.Close();
            dataGridView1.DataSource = dt;
        }
    }
}

任何人都可以帮助我如何从没有几列的txt文件导入数据? 谢谢所有答案。

1 个答案:

答案 0 :(得分:0)

我已经完成了你的代码以及你所面临的错误,并且知道你的文本文件在考虑时也有空格或多个空格,当你在空白基础上拆分时它也会有一些空值。我已经更新了你的代码,请尝试一下,万一你遇到问题,请随时问我。

以下是代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication10
{
    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        System.IO.StreamReader file = new System.IO.StreamReader("C:\\Users\\terrazo\\Desktop\\test1.txt");
        string[] columnnames = file.ReadLine().Split(' ');
        DataTable dt = new DataTable();

        foreach (string c in columnnames)
        {
            if (c != "")
            {
                dt.Columns.Add(c);
            }
        }
        string newline;
        while ((newline = file.ReadLine()) != null)
        {
            DataRow dr = dt.NewRow();
            string[] values = newline.Split(' ');
            for (int i = 0; i < values.Length; i++)
            {
                if (values[i] != "")
                {
                    dr[i] = values[i];
                }
            }
            dt.Rows.Add(dr);
        }
        file.Close();
        dataGridView1.DataSource = dt;
    }
}
}