C# WinFrom 中如何将txt内容显示到dataGridView

2025-01-06 04:15:49
推荐回答(3个)
回答1:

private void button1_Click(object sender, EventArgs e)

        {

            //建立一个打开文件的对话框

            using (OpenFileDialog dlgText = new OpenFileDialog())

            {

                dlgText.Filter = "文本文件|*.txt";

                if (dlgText.ShowDialog() == DialogResult.OK)

                {

                    //新建一个datatable用于保存读入的数据

                    DataTable dt = new DataTable();

                    //给datatable添加三个列

                    dt.Columns.Add("帐号", typeof(String));

                    dt.Columns.Add("密码", typeof(String));

                    dt.Columns.Add("备注", typeof(String));

                    //读入文件

                    using (StreamReader reader = new StreamReader(dlgText.FileName, Encoding.Default))

                    {

                        //循环读取所有行

                        while (!reader.EndOfStream)

                        {

                            //将每行数据,用-分割成3段

                            string[] data = reader.ReadLine().Replace("----", "-").Split('-');

                            //新建一行,并将读出的数据分段,分别存入3个对应的列中

                            DataRow dr = dt.NewRow();

                            dr[0] = data[0];

                            dr[1] = data[1];

                            dr[2] = data[2];

                            //将这行数据加入到datatable中

                            dt.Rows.Add(dr);

                        }

                    }

                    //将datatable绑定到datagridview上显示结果

                    this.dataGridView1.DataSource = dt;

                }

            }

        }

回答2:

新建一个WINFORM窗体。添加一个BUTTON,一个dataGridView.然后拷贝如下代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

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

private void button1_Click(object sender, EventArgs e)
{
StreamReader read = new StreamReader(@"d:\a.txt", Encoding.Default, false);

//创建一个DATATABLE
DataTable dt = new DataTable();
dt.Columns.Add("网址");
dt.Columns.Add("用户");
dt.Columns.Add("说明");

//循环读取行数,一行一行的读
string line = "";
while ((line = read.ReadLine()) != null)
{
string[] str = line.Split(' '); //使用空格分隔的内容
DataRow dr = dt.NewRow();
// 也可以这样写,但是如果文本后面有空格,会出错 dr.ItemArray =str ;
dr[0] = str[0];
dr[1] = str[1];
dr[2] = str[2];
dt.Rows.Add(dr);
}
this.dataGridView1.DataSource = dt;
}
}
}

经测试通过

回答3:

你可以这样做,用字符串数组存储文本框的内容,字符数组c#提供了现成的方法,可以分隔字符(具体哪个方法忘了,哈哈,你可以找找),以你的提问来看的话,用“-”作为分割符号,分割数据源,然后用ADO.NET的方法插入数据库中就可以了哈。

回答不在得分,但愿问题解决。
希望和广大程序人员技术交流~~~