2010-06-28 5 views
5

DataTable에 XML 파일을 읽는 데 문제가 있습니다. 처음에는 Datatable을 XML 파일에 쓰고 저장했습니다. 이제 XML 파일을 DataTable으로 다시 읽으려는 시도가 없습니다.DataTable을 XML 파일로 변환하고 viceversa

private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    if (myDT_For_DGV.Rows.Count != 0) 
    { 
     saveFileDialog1.ShowDialog(); 
     saveFileDialog1.FileName = "checkOutFile.xml"; 
     myDT_For_DGV.TableName = "CheckOutsAndIns"; 
     myDT_For_DGV.WriteXml(saveFileDialog1.FileName, true); 
    } 
    else 
    { 
     MessageBox.Show("Please add licences to DataGridView, you havent added any licences as of now", "Alert"); 
    } 
} 

그리고 파일을 읽기 위해 :

다음 코드는 파일을 작성하기위한 것입니다

private void openToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    //write code to open file 
    if (openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     //myFile = openFileDialog1.FileName; 
     System.IO.MemoryStream xmlStream = new System.IO.MemoryStream(); 

     xmlStream.Position = 0; 

     myDT_For_DGV.ReadXml(openFileDialog1.FileName); 
     //MessageBox.Show(openFileDialog1.FileName); 
    } 
} 

답변

3

문제가 해결되었지만 저장하는 동안 tablename이 지정되었지만 읽을 때는 할당되지 않았습니다. 따라서 테이블 이름을 전역 적으로 지정하면 아무 문제없이 읽고 쓸 수 있습니다.

그래서 코드가 될 것

myDT_For_DGV.TableName = "CheckOutsAndIns"; 

if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     {    
       myDT_For_DGV.ReadXml(@openFileDialog1.FileName); 
      //MessageBox.Show(openFileDialog1.FileName); 

     } 

//TO WRITE TO XML 
if (myDT_For_DGV.Rows.Count != 0) 
     { 
      saveFileDialog1.ShowDialog(); 
      saveFileDialog1.FileName = "checkOutFile.xml"; 
      myDT_For_DGV.WriteXml(saveFileDialog1.FileName, true); 
     } 
16

그냥 같이, 높은 수준의 데이터 집합으로 작업하는 것이 더 쉬울 수 있습니다

DataSet dataSet = new DataSet(); 
DataTable dataTable = new DataTable(); 

dataSet.Tables.Add(dataTable); 
// Save to disk 
dataSet.WriteXml(@"C:\MyDataset.xml"); 

// Read from disk 
dataSet.ReadXml(@"C:\MyDataset.xml"); 
+1

그게 전부 하나 작동하지 않습니다 .. – Yash

관련 문제