2016-12-09 25 views
0

私の問題は、DataGridViewをテキストファイルから情報を読み込めないようにするためです。実際に何をするか分からない、 C#に新しいので、私はあなたが私を助けることができると思います。ここでDDataGridViewをテキストファイルの情報を読み込むにはどうすればいいですか?C#

が私のグリッドから値を保存するために私のコードです:

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); 

そして今、別のフォームから、別のグリッドがありますそのファイルに保存されている値で埋める必要があります 現在のコード:

結論として210
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ção 1-グルポ 2-バロール -3-データ

そしてたForm3から第二のものを、適切な順序でテキストファイルを読む必要があります

あなたが私に助けてくれることを願っています。

+0

datagridviewをcsvに保存し、別のフォームからそのcsvファイルを読み込むことができます。 – Damith

答えて

0

以下を試してください。 グリッドデータを以下のようにグリッドに表示するのと同じ構造でテキストファイルにエクスポートしました。カラム名と、この例ではbelow.Hereを示すように、クラスのリストコレクションにエクスポートしたデータをロードするための方法のような特性を持つ新しいクラスを作成し

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(); 
    } 

、私のグリッドは、2つの列名とMarks.soを持っています私は

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

    } 

下に示すように、第2のグリッドに上記の方法とバインドを呼び出して、第二の形式のフォームのLoadイベントに

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; 
    } 
}} 

今私のユーザー・クラスのもの2つのプロパティを宣言しましたそれが役に立ちそうなら、これを答えとしてマークしてください。

+0

ありがとうポール、それは本当に働いたが、もう一つの問題は、私はすべての情報を保持したいとプラス将来の情報を入れるつもりの情報。言い換えれば、すべての情報を保持するテキストライターを作成するために、テキストファイル – mptdias

+0

のすべての情報を以下のコード行に追加したいと思います。 – paul

+0

TextWriter writer =新しいStreamWriter( "Text.txt"、true); – paul

関連する問題