2015-10-20 2 views
0

У меня есть следующий код VB.NET и ожидал, что содержимое combobox1 будет записано в xml-файл, но он ничего не дозирует?Запись выделенного элемента combobox в файл xml

  'Creating XML file first... 
     Dim objWriter As New System.IO.StreamWriter(IO.Directory.GetCurrentDirectory & "\PROFILE.xml") 

     objWriter.WriteLine("<COMPELATION>") 
     objWriter.WriteLine("</COMPELATION>") 
     objWriter.Close() 

     'Writing XML content... 
     Dim xmldoc As XmlDocument = New XmlDocument() 
     xmldoc.Load(IO.Directory.GetCurrentDirectory & "\PROFILE.xml") 

     With xmldoc.SelectSingleNode("/COMPELATION").CreateNavigator().AppendChild() 
      .WriteStartElement("DATA") 
      .WriteElementString("PROJECTID", TextBox1.Text) 
      .WriteElementString("CLIENTID", ComboBox1.SelectedText) 
      .WriteElementString("CDATE", Date.Today) 
      .WriteElementString("CTIME", Now.ToShortTimeString) 

      .WriteEndElement() 
      .Close() 
     End With 
     xmldoc.Save(IO.Directory.GetCurrentDirectory & "\PROFILE.xml") 

     Dim filepath As String = (IO.Directory.GetCurrentDirectory & "\PROFILE.xml") 
     Dim DS_PROJECTS As New DataSet 
     DS_PROJECTS.ReadXml(filepath) 
    End If 

ответ

0

ComboBox1.SelectedText представляет то, что подсвечено. Вероятно, нет выделенного элемента в синем, когда ваш код выполнен. Поэтому ничто не добавляется в метку CLIENTID.

Используйте вместо этого Combobox1.Text, который представляет то, что вы выбрали.

.WriteElementString("CLIENTID", ComboBox1.Text) 
0

Я изменил ваши значения жесткого кодирования кода из combobox и текстового поля. Затем я помещаю результаты в DataGridView и, похоже, работает.

Imports System.Xml 
 
Public Class Form1 
 
    Const FILENAME As String = "c:\temp\test.xml" 
 
    Sub New() 
 

 
     ' This call is required by the designer. 
 
     InitializeComponent() 
 

 
     ' Add any initialization after the InitializeComponent() call. 
 
     Dim objWriter As New System.IO.StreamWriter(FILENAME) 
 

 
     objWriter.WriteLine("<COMPELATION>") 
 
     objWriter.WriteLine("</COMPELATION>") 
 
     objWriter.Close() 
 

 
     'Writing XML content... 
 
     Dim xmldoc As XmlDocument = New XmlDocument() 
 
     xmldoc.Load(FILENAME) 
 

 
     With xmldoc.SelectSingleNode("/COMPELATION").CreateNavigator().AppendChild() 
 
      .WriteStartElement("DATA") 
 
      .WriteElementString("PROJECTID", "abc") 
 
      .WriteElementString("CLIENTID", "def") 
 
      .WriteElementString("CDATE", Date.Today) 
 
      .WriteElementString("CTIME", Now.ToShortTimeString) 
 

 
      .WriteEndElement() 
 
      .Close() 
 
     End With 
 
     xmldoc.Save(FILENAME) 
 

 
     Dim filepath As String = (FILENAME) 
 
     Dim DS_PROJECTS As New DataSet 
 
     DS_PROJECTS.ReadXml(filepath) 
 

 
     DataGridView1.DataSource = DS_PROJECTS.Tables(0) 
 
    End Sub 
 
End Class 
 
​

Смежные вопросы