如何使我的DataGridView读取文本文件C#的信息



所以我的问题是,我可以从已经创建的文本文件中读取信息,不知道该怎么做,我对C#有点新来,所以希望您能帮助我:D

这是我从网格中保存值的代码:

private void buttonGuardar_Click(object sender, EventArgs e)
{
    string[] conteudo = new string[dataGridView1.RowCount * dataGridView1.ColumnCount];
    int cont = 0;
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        foreach (DataGridViewCell cell  in row.Cells)
        {
            conteudo[cont++] = cell.Value.ToString();
        }
    }
    File.WriteAllLines("dados.txt", conteudo);

现在,从不同的形式来看,还有另一个网格必须用保存在该文件中的值填充 目前的代码:

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;
using System.IO;

namespace WindowsFormsApplication31
{
    public partial class Form3 : Form
    {
        DateTime start, end;
        private void Form3_Load(object sender, EventArgs e)
        {
            textBox1.Text = start.ToString("dd-MM-yyyy");
            textBox2.Text = end.ToString("dd-MM-yyyy");
        }
        public Form3(DateTime s, DateTime e)
        {
            InitializeComponent();
            start = s;
            end = e;
        }
    }
}

总而言之,两个网格都应具有4个单元格:

0-Designação1-grupo2瓦尔3数据

和form3的第二个,应以正确的顺序读取文本文件

希望您能帮助我,谢谢。

请在下面尝试一下。我将网格数据导出到文本文件中与在网格中显示的结构相同。

    private void button1_Click(object sender, EventArgs e)
    {
        TextWriter writer = new StreamWriter("Text.txt");
        for (int i = 0; i < DataGridView1.Rows.Count; i++)
        {
            for (int j = 0; j < DataGridView1.Columns.Count; j++)
            {
                writer.Write(DataGridView1.Rows[i].Cells[j].Value.ToString() + "t");
            }
            writer.WriteLine("");
        }
        writer.Close();
    }

创建了一个带有属性作为列名的新类,以及一种将导出数据加载到类列表集合中的方法,如下所示。在此示例中,我的网格有两个列名称和标记。我的用户类中的属性

using System;
using System.Collections.Generic;
 using System.Linq;
 using System.Text;
using System.IO;
 namespace WindowsFormsApplication1
 {
public class User
{
    public string Name { get; set; }
    public string Marks { get; set; }

    public static List<User> LoadUserListFromFile(string path)
    {
        var users = new List<User>();
        foreach (var line in File.ReadAllLines(path))
        {
            var columns = line.Split('t');
            users.Add(new User
            {
                Name = columns[0],
                Marks = columns[1]
            });
        }
        return users;
    }
}}

现在,在第二形式的形式负载事件上,调用上述方法并绑定到第二个网格,如下所示

    private void Form2_Load(object sender, EventArgs e)
    {
        dataGridView2.DataSource = User.LoadUserListFromFile("Text.txt");
    }

请求将其标记为答案,如果有帮助。

最新更新