簡體   English   中英

在 DataGridView 中導入文本文件,C#

[英]Importing text file inside of DataGridView , C#

我有一個問題,單擊按鈕時,dataview 應該從文本文件中獲取所有數據。 我不明白為什么它不起作用。 我還有另一個 function 可以將數據放入文本文件中,這是可行的。 任何人都可以幫助我嗎? 提前致謝這是 function 的代碼,當我運行程序時,它應該獲取所有數據並將它們放入 dataviewgrid,但是有一些問題,我根本沒有收到錯誤消息,但它沒有發生。 這是非常好用的代碼,它顯示所有列和所有數據將在文本文件中填充我在 txt 文件中獲得的數據數據

    private void dodajToolStripMenuItem_Click(object sender, EventArgs e) {
 //upis u datoteku
 using (TextWriter smesti = new StreamWriter("podaci.txt")) {
   for (int i = 0; i < dataGridView1.Rows.Count; i++) {
  if (!dataGridView1.Rows[i].IsNewRow) {
    for (int j = 0; j < dataGridView1.Columns.Count; j++) {
      smesti.Write(dataGridView1.Rows[i].Cells[j].Value.ToString());
      if (j < dataGridView1.Columns.Count - 1) {
        smesti.Write("|");
      }
    }
    smesti.WriteLine();
  }
}

} }

private void Admin_Load(object sender, EventArgs e)
    {
        DataTable tabela = new DataTable();
        tabela.Columns.Add("ID", typeof(int));
        tabela.Columns.Add("Naziv", typeof(string));
        tabela.Columns.Add("Zanr", typeof(string));
        tabela.Columns.Add("Duzina", typeof(int));
        tabela.Columns.Add("Granica godina: ", typeof(int));

        dataGridView1.DataSource = tabela;
        
       
        

    }
   
    private void ucitaj()
    {
        DataTable tabela = new DataTable();
        string[] tekst = File.ReadAllLines("podaci.txt");
        string[] vrednosti;

        for (int i = 0; i < tekst.Length; i++)
        {
            vrednosti = tekst[i].ToString().Split('|');
            string[] red = new string[vrednosti.Length];
            for (int j = 0; j < vrednosti.Length; j++)
            {
                red[j] = vrednosti[j].Trim();
            }
            tabela.Rows.Add(red);
        }
        
    }

    private void button1_Click(object sender, EventArgs e)
    {
        ucitaj();
    }

嘗試下面的代碼將網格數據寫入文件。 該代碼只是將每個單元格寫入文件,然后寫入一個條形“|” 分隔符,除非該單元格是該行的最后一個單元格。 我們不希望在行尾有分隔符。

private void dodajToolStripMenuItem_Click(object sender, EventArgs e) {
  //upis u datoteku
  using (TextWriter smesti = new StreamWriter("podaci.txt")) {
    for (int i = 0; i < dataGridView1.Rows.Count; i++) {
      if (!dataGridView1.Rows[i].IsNewRow) {
        for (int j = 0; j < dataGridView1.Columns.Count; j++) {
          smesti.Write(dataGridView1.Rows[i].Cells[j].Value.ToString());
          if (j < dataGridView1.Columns.Count - 1) {
            smesti.Write("|");
          }
        }
        smesti.WriteLine();
      }
    }
  }
}

然后在讀取文件的代碼中......

DataTable tabela;

private void ucitaj() {
  //DataTable tabela = new DataTable();
  tabela.Rows.Clear();
  string[] tekst = File.ReadAllLines("podaci.txt");
  string[] vrednosti;

  for (int i = 0; i < tekst.Length; i++) {
    vrednosti = tekst[i].ToString().Split('|');
    string[] red = new string[vrednosti.Length];
    for (int j = 0; j < vrednosti.Length; j++) {
      red[j] = vrednosti[j].Trim();
    }
    tabela.Rows.Add(red);
  }
  dataGridView1.DataSource = tabela;
}

並且...您需要將DataTable ... tabela移動為全局變量。 所以讓tabela全球化......

DataTable tabela;

然后在Load事件中,更改行...

DataTable tabela = new DataTable();

至...

tabela = new DataTable();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM