2016-05-17 13 views
-2

ここで、私は内」のようなXMLファイルでそれを維持したい、私は、テキストファイルにデータを格納した後、問題です。このどのようにC#を使用してXMLファイルのtxtファイルからデータを格納するには?

Student std = new Student(); 
dataGridView1.Rows.Clear(); //to clear the dataGridView Before showing the data 
dataGridView1.Refresh(); 
List<Student> students = new List<Student>(); 
using (StreamReader sr = new StreamReader(txt_path.Text)) 
{ 
    int x = 0; 
    while (sr.Peek() >= 0) 
    { 
     string str; 
     string[] strArray; 
     str = sr.ReadLine(); 

     strArray = str.Split('@', '#'); 
     Student s = new Student(); 
     s.ID = int.Parse(strArray[0]); 
     s.Name = strArray[1]; 
     s.Address = strArray[2]; 
     s.Phone = strArray[3]; 

     DataGridViewRow row = new DataGridViewRow(); 
     row.CreateCells(dataGridView1); // this line was missing 
     row.Cells[x].Value = s.ID; 
     row.Cells[++x].Value = s.Name; 
     row.Cells[++x].Value = s.Address; 
     row.Cells[++x].Value = s.Phone; 

     dataGridView1.Rows.Add(row); 
     students.Add(s); 
     x = 0; 
    } 
} 

をやって、私は区切り文字を使用して、テキストファイル内のユーザーからのデータを格納し、これは私のコードです絵"。

enter image description here

私が試してみましたが、私はこれは私が

  try 
     { 
      List<Student> students = new List<Student>(); 
      using (StreamReader sr = new StreamReader(txt_path.Text)) 
      { 

       string xmlc = string.Empty; 
       while (sr.Peek() >= 0) 
       { 
        string str; 
        string[] strArray; 

        str = sr.ReadLine(); 

        if (!string.IsNullOrWhiteSpace(str) && !str.StartsWith("#")) 
        { 
         xmlc += str; 
         strArray = xmlc.Split('@', '#'); 
         saveXml.saveData(xmlc, "data.xml"); 
         saveXml.saveData(strArray, "data.xml"); 
        } 

        Student s = new Student(); 
        s.ID = int.Parse(strArray[0]); 
        s.Name = strArray[1]; 
        s.Address = strArray[2]; 
        s.Phone = strArray[3]; 




        students.Add(s); 


       } 
      } 
     } 

     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

text file

+1

「Xml」の作成/書き出しに使用されるコードを表示できますか? –

+0

@HariPrasad私は私の質問を編集しました。 –

+0

@FelicePollanoただし、このストアデータはdataGridviewにあり、テキストファイル –

答えて

0
seconde絵で作るもののためのコードであるこの絵で

enter image description here

のように失敗しました。

あなたのコードを見れば、テキストファイルを読み込み、Xmlファイルを生成したいと思っています。

あなたはこのようなことをすることができます。あなたが学生のリストを取得したら

var students = File.ReadLines(txt_path.Text) 
    .Select(line=>line.Split('@', '#') 
    .Select(x=> new Student() 
       { 
        ID = int.Parse(x[0]), 
        Name = x[1], 
        Address = x[2], 
        Phone = x[3] 
       }) 
    .ToList(); 

あなたはXmlLinqを使用してXMLファイルを作成することができます。

XElement element = 
    new XElement("Students", 
     (from student in students 
      select new XElement("Student", 
       new XElement("ID", student.ID), 
       new XElement("Name",student.Name), 
       new XElement("Address", student.Address), 
       new XElement("Phone",student.Phone) 
      ) 
     ) 
    ); 

element.Save(outputfile); 

なく、少なくとも最後に、あなたはDataGridViewにソースを結合としてList<Student>を使用することができます。

dataGridView1.DataSource new BindingSource(new BindingList<Student>(students); 

これをチェックすると、これがどのように機能するかがわかります。

関連する問題