2016-05-05 11 views
0
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Xml.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO; 
using System.Reflection; 
using System.Xml; 

namespace Students 
{ 
    public partial class StudentDetails : Form 
    { 
     public StudentDetails() 
     { 
      InitializeComponent(); 
     } 

     private void btnAddStudent_Click(object sender, EventArgs e) 
     { 
      XDocument studentXML = new XDocument("students") 

      if (File.Exists("\\SR\\SR\\Student Records\\students.xml")) 
      { 
       studentXML = XDocument.Load("\\SR\\SR\\Student Records\\students.xml"); 

      } 
      else 
      { 
       studentXML = new XDocument(new XElement("students")); 

      } 

      ParameterPassing.studentNo = Microsoft.VisualBasic.Interaction.InputBox("Please enter Student Number", "Student Number"); 

      XElement xml = new XElement("student"); 
      xml.Add(new XElement("StudentNo", ParameterPassing.studentNo)); 

      if (studentXML.Descendants().Count() > 0) 
      { 
       studentXML.Descendants("students").First().Add(xml); 
      } 
      else 
      { 
       studentXML.Add(xml); 
      } 
      studentXML.Save("\\SR\\SR\\Student Records\\students.xml"); 
     } 

     public void CreateDatabase() 
     { 
      DataSet ds = new DataSet(); 
      ds.ReadXml("\\SR\\SR\\Student Records\\students.xml"); 

      dgvMembers.DataSource = ds.Tables[0]; 
     } 
    } 
} 

Ich habe keine Fehler mit meinem Code, es öffnet einfach nicht erstellen oder öffnen Sie das XML-Dokument.XML nicht gefunden oder erstellt

Ich machte eine von Hand, um zu sehen, ob das funktionierte, aber das hatte auch keine Wirkung.

Konnte jemand mir helfen, dieses Problem zu lösen.

+1

Wo genau sieht Ihre 'students.xml' Datei existiert vorher, und wo erwarten Sie es bis Ende? (Sie suchen es gerade und speichern es im Arbeitsverzeichnis Ihres Prozesses.) –

+0

@JonSkeet Der vollständige Verzeichnispfad lautet '\\ SR \\ SR \\ Student Records \\ students.xml' Ich habe das leider hinzugefügt . Es funktioniert immer noch nicht mit dem vollständigen Dateipfad. – Jason

+0

Also 'SR' ist im Stammverzeichnis des Laufwerks, das das Arbeitsverzeichnis des Prozesses enthält? –

Antwort

0

Versuchen Sie so etwas wie dieses ....

 XDocument studentXML = new XDocument("students"); 

     foreach (DriveInfo drive in DriveInfo.GetDrives()) 
     { 
      if (drive.DriveType == DriveType.Removable) 
      { 
       string XMLFilePath = String.Format("{0}{1}", drive.RootDirectory, "SR\\SR\\Student Records\\students.xml"); 
       if (File.Exists(XMLFilePath)) 
       { 
        studentXML = XDocument.Load(XMLFilePath); 
       } 
      } 
     } 
Verwandte Themen