public static void Save(Mitglied mitglied, out int id)
        {
            string xmlTelefon = SerializeTelefon(mitglied.LstTelefon);

            SqlParameter pId           = new SqlParameter("@id", SqlDbType.Int);
            SqlParameter pName         = new SqlParameter("@name", SqlDbType.NVarChar, 50);
            SqlParameter pOrt          = new SqlParameter("@ort", SqlDbType.NVarChar, 50);
            SqlParameter pStrasse      = new SqlParameter("@strasse", SqlDbType.NVarChar, 50);
            SqlParameter pGeburtsdatum = new SqlParameter("@geburtsdatum", SqlDbType.Date);
            SqlParameter pGeschlecht   = new SqlParameter("@geschlecht", SqlDbType.NVarChar, 1);
            SqlParameter pNotiz        = new SqlParameter("@notiz", SqlDbType.NVarChar, mitglied.Notiz.Length);
            SqlParameter pTelefon      = new SqlParameter("@telefon", SqlDbType.NVarChar, xmlTelefon.Length);

            SqlCommand com = new SqlCommand();

            com.Parameters.Add(pId).Value           = mitglied.Id;
            com.Parameters.Add(pName).Value         = mitglied.Name;
            com.Parameters.Add(pOrt).Value          = mitglied.Ort;
            com.Parameters.Add(pStrasse).Value      = mitglied.Strasse;
            com.Parameters.Add(pGeburtsdatum).Value = mitglied.Geburtsdatum.Value;
            com.Parameters.Add(pGeschlecht).Value   = mitglied.Geschlecht;
            com.Parameters.Add(pNotiz).Value        = mitglied.Notiz;
            com.Parameters.Add(pTelefon).Value      = xmlTelefon;

            if (mitglied.Id > 0)
            {
                com.CommandText =
                    "UPDATE Mitglied SET " +
                    "Name=@name," +
                    "Ort=@ort," +
                    "Strasse=@strasse," +
                    "Geburtsdatum=@geburtsdatum," +
                    "Geschlecht=@geschlecht," +
                    "Notiz=@notiz," +
                    "Telefon=@telefon " +
                    "WHERE ID=@id;" +
                    "SELECT @id";
            }
            else
            {
                com.CommandText =
                    "INSERT INTO Mitglied" +
                    "(Name,Ort,Strasse,Geburtsdatum,Geschlecht,Notiz,Telefon)" +
                    "VALUES" +
                    "(@name,@ort,@strasse,@geburtsdatum,@geschlecht,@notiz,@telefon);" +
                    "SELECT @@IDENTITY";
            }

            using (SqlConnection con = new SqlConnection(Config.CONNECTION_STRING))
            {
                con.Open();
                com.Connection = con;
                id             = Convert.ToInt32(com.ExecuteScalar());
            }
        }
        public static ReadResult Read()
        {
            ReadResult readResult = new ReadResult();

            using (SqlConnection con = new SqlConnection(Config.CONNECTION_STRING))
            {
                con.Open();
                SqlCommand com = con.CreateCommand();

                com.CommandText =
                    //"WAITFOR DELAY '00:00:00';" +
                    "SELECT Id,Name,Ort,Strasse,Geburtsdatum,Geschlecht,Notiz,Telefon " +
                    "FROM Mitglied ORDER BY Name,Id";

                using (SqlDataReader rdr = com.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        Mitglied mitglied = new Mitglied();
                        mitglied.Id           = Convert.ToInt32(rdr["Id"]);
                        mitglied.Name         = Convert.ToString(rdr["Name"]);
                        mitglied.Ort          = Convert.ToString(rdr["Ort"]);
                        mitglied.Strasse      = Convert.ToString(rdr["Strasse"]);
                        mitglied.Geburtsdatum = Convert.ToDateTime(rdr["Geburtsdatum"]);
                        mitglied.Geschlecht   = Convert.ToString(rdr["Geschlecht"]);
                        mitglied.Notiz        = Convert.ToString(rdr["Notiz"]);
                        mitglied.LstTelefon.AddRange(DeserializeTelefon(Convert.ToString(rdr["Telefon"])));
                        readResult.Mitglieder.Add(mitglied);
                    }
                }

                com.CommandText =
                    "SELECT ISNULL(M,0),ISNULL((100-M), 0) W FROM " +
                    "(SELECT ROUND((COUNT(Case when Geschlecht='M' THEN Geschlecht END)/" +
                    "NULLIF(CONVERT(FLOAT, COUNT(Geschlecht)),0)*100),2) M FROM Mitglied)TBL";

                using (SqlDataReader rdr = com.ExecuteReader())
                {
                    if (rdr.Read())
                    {
                        readResult.Maennlich = Convert.ToDouble(rdr[0]);
                        readResult.Weiblich  = Convert.ToDouble(rdr[1]);
                    }
                }
            }

            return(readResult);
        }