Abou Chleih

{the magic lies between the brackets}

Menü Schließen

Kategorie: Snippets

Hier findet ihr kleine Codeschnipsel, welche im Alltag von Bedeutung sein könnten.

[C#] XML in Applikation einlesen

Um schnell mal eine XML-Datei in die Applikation einzulesen, bedarf es dank des .NET-Frameworks nicht viel Arbeit.

Ich nutze dazu die XDocument-Klasse mit welcher es möglich ist XML zu parsen und zu schreiben.

Mein XML hatte folgende Form:

<?xml version="1.0" encoding="utf-8" ?>
<Phonenumbers>
  <phonenumber>
    <Name>Test</Name>
    <Number>12345678</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test2</Name>
    <Number>11111111</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test3</Name>
    <Number>222222222</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test4</Name>
    <Number>333333333</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test5</Name>
    <Number>44444444444</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test6</Name>
    <Number>55555555555</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test7</Name>
    <Number>66666666666</Number>
  </phonenumber>
  <phonenumber>
    <Name>Test8</Name>
    <Number>77777777777</Number>
  </phonenumber>
</Phonenumbers>

In die Applikation wird das XML mit folgendem Code geladen:

string xml = System.IO.File.ReadAllText(PfadZurXMLDatei);
XDocument xmlReader =  XDocument.Parse(xml);
var List = from element in xmlReader.Descendants("phonenumber")
		select new
		{
			name = (string)element.Element("Name"),
			number = (string)element.Element("Number"),
			//Weitere Elemente lesen
		};
foreach (var item in List)
{
	listBox1.Items.Add(item.name);
	listBox2.Items.Add(item.number);
}

Durchlaufen von Ordnern und Dateien

Ein kleiner Code, welcher alle Ordner und Dateien durchläuft (rekursiv) und den Pfad in eine Liste schreibt.

 List<string> entitylist = new List<string>(); 
  private void ReadSubDirectories(string path)
        {
            try
            {
                string[] subdirs = Directory.GetDirectories(path);

                foreach (string subdir in subdirs)
                {
                    entitylist.Add(subdir);
                    ReadSubDirectories(subdir);
                }

                string[] subcds = Directory.GetFiles(path);

                foreach (string subcd in subcds)
                {
                    entitylist.Add(subcd);                 
                    ReadSubDirectories(subcd);
                }
            }
            catch { }
        } 

C#/MySQL Alle MySQL Datenbanken auslesen

Ich wollte heute folgende Aufgabe lösen:
Lese alle erstellten MySQL-Datenbanken auf dem Host aus und füge sie einer comboBox hinzu. Im Endeffekt wird dies durch folgenden Code erledigt:

database_comboBox.Items.Clear();
string connectionstring = "SERVER=" + host_textBox.Text + ";" + "UID=" + User_textBox.Text + ";" + "PASSWORD=" + password_textBox.Text+ ";";
MySqlConnection con = new MySqlConnection(connectionstring);
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "show databases";
try
{
     con.Open();
     MySqlDataReader reader = cmd.ExecuteReader();
     while (reader.Read())
     {
           string row = "";
           for (int i = 0; i < reader.FieldCount; i++)
                    row += reader.GetValue(i).ToString();
           database_comboBox.Items.Add(row);
     }
     database_comboBox.DroppedDown = true;
}
catch (MySqlException ex)
{
     MessageBox.Show(ex.Message,ex.Source,MessageBoxButtons.OK,MessageBoxIcon.Error);
}

Im connectionstring werden der Host und die Credentials angegeben. In der Regel wird auch die Datenbank angegeben(in unserem Fall natürlich nicht)
MySQL-Command wird logischerweise der SQL-Query angegeben.

C#/.NET Taskbar PopUp

Erstellt eure Form und benutzt diesen Code um die Form am unteren, rechten Rand hochfahren zu lassen.

public void Animate()
    {
        this.Location = new Point(SystemInformation.VirtualScreen.Width - this.Width, SystemInformation.VirtualScreen.Height);
        for (int i = 0; i < this.Height; i++)
        {
            this.Location = new Point(SystemInformation.VirtualScreen.Width - this.Width, SystemInformation.VirtualScreen.Height - i);
        }
    }

© 2018 Abou Chleih. Alle Rechte vorbehalten.

Thema von Anders Norén.