Beispiel #1
0
        public Adres GetAdres(int ID)
        {
            DbConnection connection = getConnection();
            string       query      = "SELECT dbo.adresSQL.*, dbo.adreslocatieSQL.x, dbo.adreslocatieSQL.y, dbo.straatnaamSQL.straatnaam, dbo.straatnaamSQL.NIScode, dbo.gemeenteSQL.gemeentenaam " +
                                      "FROM dbo.adresSQL " +
                                      "JOIN dbo.adreslocatieSQL " +
                                      "ON dbo.adresSQL.adreslocatieID = dbo.adreslocatieSQL.ID " +
                                      "JOIN dbo.straatnaamSQL " +
                                      "ON dbo.adresSQL.straatnaamID = dbo.straatnaamSQL.ID " +
                                      "JOIN dbo.gemeenteSQL " +
                                      "ON dbo.straatnaamSQL.NIScode = dbo.gemeenteSQL.NIScode " +
                                      "WHERE adresSQL.ID = @ID;";

            using (DbCommand command = connection.CreateCommand())
            {
                command.CommandText = query;
                DbParameter paramID = sqlFactory.CreateParameter();
                paramID.ParameterName = "@ID";
                paramID.DbType        = DbType.Int32;
                paramID.Value         = ID;
                command.Parameters.Add(paramID);
                connection.Open();
                try
                {
                    DbDataReader reader = command.ExecuteReader();
                    reader.Read();
                    Gemeente   gemeente   = new Gemeente((int)reader["NIScode"], (string)reader["gemeentenaam"]);
                    Straatnaam straatnaam = new Straatnaam((int)reader["straatnaamID"], (string)reader["straatnaam"], gemeente);
                    Adres      adres      = new Adres((int)reader["ID"], straatnaam, (string)reader["appartementnummer"],
                                                      (string)reader["busnummer"], (string)reader["huisnummer"],
                                                      (string)reader["huisnummerlabel"], (int)reader["adreslocatieID"], (double)reader["x"], (double)reader["y"]
                                                      );
                    reader.Close();
                    return(adres);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    return(null);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
Beispiel #2
0
        private static List <Adres> GMLParser()
        {
            //loading from file, also able to load from stream
            XDocument  doc  = XDocument.Load(@"C:\Users\Biebem\Downloads\test.gml");
            XNamespace gml  = "http://www.opengis.net/gml";
            XNamespace agiv = "http://www.agiv.be/agiv";
            //Query data
            var query = doc.Descendants(agiv + "CrabAdr")
                        .Select(e => new
            {
                id                = (int)e.Element(agiv + "ID"), //adresID
                straatnaamid      = (int)e.Element(agiv + "STRAATNMID"),
                straatnaam        = (string)e.Element(agiv + "STRAATNM"),
                huisnummer        = (string)e.Element(agiv + "HUISNR"),
                appartementnummer = (string)e.Element(agiv + "APPTNR"),
                busnummer         = (string)e.Element(agiv + "BUSNR"),
                huisnummerlabel   = (string)e.Element(agiv + "HNRLABEL"),
                NIScode           = (int)e.Element(agiv + "NISCODE"),
                gemeente          = (string)e.Element(agiv + "GEMEENTE"),
                postcode          = (int)e.Element(agiv + "POSTCODE"),
                herkomst          = (string)e.Element(agiv + "HERKOMST"), //wordt wss niet gebruikt.
                coord             = e.Descendants(gml + "coord").Select(f => new { x = (double)f.Element(gml + "X"), y = (double)f.Element(gml + "Y") })
            });
            //aanmaken objecten
            List <Adres> adressen = new List <Adres>();

            double[] coord = new double[2];
            foreach (var e in query)
            {
                double     x          = e.coord.ElementAt(0).x;
                double     y          = e.coord.ElementAt(0).y;
                Gemeente   gemeente   = new Gemeente(e.NIScode, e.gemeente);
                Straatnaam straatnaam = new Straatnaam(e.straatnaamid, e.straatnaam, gemeente);
                Adres      adres      = new Adres(e.id, straatnaam, e.appartementnummer, e.busnummer, e.huisnummer, e.huisnummerlabel, -1, x, y);
                adressen.Add(adres);
            }
            return(adressen);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            DbProviderFactories.RegisterFactory("sqlServer", SqlClientFactory.Instance);
            string            conectionString = @"Data Source=DESKTOP-OF28PIK\SQLEXPRESS;Initial Catalog=exc;Integrated Security=True";
            DbProviderFactory sqlFactory      = DbProviderFactories.GetFactory("sqlServer");
            AdresBeheer       adresbeheer     = new AdresBeheer(sqlFactory, conectionString);

            adresbeheer.AddGMLAdressesDB();
            AdresRequest req = new AdresRequest(sqlFactory, conectionString);

            //Straatnaam straattest = new Straatnaam(65927, "kkakak", new Gemeente(65927, "Gent"));
            //Adres test = new Adres(20, straattest, "20b", "2a", "45", "standaard", 9000, 12.45, 89.45);
            //adresbeheer.voegAdresToe(test);
            System.Console.WriteLine("-----------------------------------------------------------------------");
            System.Console.WriteLine("-----------------------------------------------------------------------");
            System.Console.WriteLine("adres van id : 2000000004");
            Adres adresRequestTest = req.GetAdres(2000000004);

            System.Console.WriteLine(adresRequestTest);
            System.Console.WriteLine("-----------------------------------------------------------------------");
            System.Console.WriteLine("Straatnamen van alle Gent alfabetisch gesorteerd :");
            List <Straatnaam> straatnamen = req.getStraatnamen("Gent");

            foreach (Straatnaam straatnaam in straatnamen)
            {
                System.Console.WriteLine(straatnaam);
            }
            System.Console.WriteLine("-----------------------------------------------------------------------");
            System.Console.WriteLine("Alle adressen die tot deze straatnaam met id 6 behoort :");
            List <Adres> adressen = req.getAdressenStraat(6);

            foreach (Adres adres in adressen)
            {
                System.Console.WriteLine(adres);
            }
            System.Console.WriteLine("-----------------------------------------------------------------------");
            System.Console.WriteLine("-----------------------------------------------------------------------");
        }
Beispiel #4
0
        public void voegAdresToe(Adres adres)
        {
            DbConnection connection = getConnection();
            string       queryAdres = "INSERT INTO dbo.AdresTest(ID,straatnaamID,huisnummer,appartementnummer,busnummer,huisnummerlabel,adreslocatieID) output INSERTED.ID " +
                                      "VALUES(@ID,@straatnaamID,@huisnummer,@appartementnummer,@busnummer,@huisnummerlabel,@adreslocatieID)";
            string queryAdresLocatie = "INSERT INTO dbo.adreslocatieTest(Id,x,y) output INSERTED.Id " +
                                       "VALUES(@Id,@x,@y)";

            using (DbCommand commandAdres = connection.CreateCommand()) //difference between dbcommand and sqlcommand
                using (DbCommand commandLocatie = connection.CreateCommand())
                {
                    connection.Open();
                    int           newLocatieID = NewLocatieID(connection);
                    DbTransaction transaction  = connection.BeginTransaction();
                    commandAdres.Transaction   = transaction;
                    commandLocatie.Transaction = transaction;
                    try
                    {
                        #region Adreslocatie toevoegen
                        //ID
                        DbParameter parAdresLocatieID = sqlFactory.CreateParameter();
                        parAdresLocatieID.ParameterName = "@Id";
                        parAdresLocatieID.DbType        = DbType.Int32;
                        commandLocatie.Parameters.Add(parAdresLocatieID);
                        //X
                        DbParameter parAdresLocatieX = sqlFactory.CreateParameter();
                        parAdresLocatieX.ParameterName = "@x";
                        parAdresLocatieX.DbType        = DbType.Double;
                        commandLocatie.Parameters.Add(parAdresLocatieX);
                        //Y
                        DbParameter parAdresLocatieY = sqlFactory.CreateParameter();
                        parAdresLocatieY.ParameterName = "@y";
                        parAdresLocatieY.DbType        = DbType.Double;
                        commandLocatie.Parameters.Add(parAdresLocatieY);
                        //
                        commandLocatie.CommandText = queryAdresLocatie;
                        //values toevoegen
                        commandLocatie.Parameters["@Id"].Value = newLocatieID;
                        commandLocatie.Parameters["@x"].Value  = adres.locatie.x;
                        commandLocatie.Parameters["@y"].Value  = adres.locatie.y;
                        commandLocatie.ExecuteNonQuery();
                        #endregion
                        #region adres toevoegen
                        //ID
                        DbParameter parID = sqlFactory.CreateParameter();
                        parID.ParameterName = "@Id";
                        parID.DbType        = DbType.Int32;
                        commandAdres.Parameters.Add(parID);
                        //StraatnaamID
                        DbParameter parNaam = sqlFactory.CreateParameter();
                        parNaam.ParameterName = "@straatnaamID";
                        parNaam.DbType        = DbType.Int32;
                        commandAdres.Parameters.Add(parNaam);
                        //huisnummer
                        DbParameter parHNummer = sqlFactory.CreateParameter();
                        parHNummer.ParameterName = "@huisnummer";
                        parHNummer.DbType        = DbType.AnsiString;
                        commandAdres.Parameters.Add(parHNummer);
                        //appartementnummer
                        DbParameter parAppNummer = sqlFactory.CreateParameter();
                        parAppNummer.ParameterName = "@appartementnummer";
                        parAppNummer.DbType        = DbType.AnsiString;
                        commandAdres.Parameters.Add(parAppNummer);
                        //busnummer
                        DbParameter parBusNr = sqlFactory.CreateParameter();
                        parBusNr.ParameterName = "@busnummer";
                        parBusNr.DbType        = DbType.AnsiString;
                        commandAdres.Parameters.Add(parBusNr);
                        //huisnummerlabel
                        DbParameter parHNrLabel = sqlFactory.CreateParameter();
                        parHNrLabel.ParameterName = "@huisnummerlabel";
                        parHNrLabel.DbType        = DbType.AnsiString;
                        commandAdres.Parameters.Add(parHNrLabel);
                        //adreslocatieID
                        DbParameter parAdresLoc = sqlFactory.CreateParameter();
                        parAdresLoc.ParameterName = "@adreslocatieID";
                        parAdresLoc.DbType        = DbType.Int32;
                        commandAdres.Parameters.Add(parAdresLoc);
                        //
                        commandAdres.CommandText = queryAdres;
                        //parameters instellen
                        commandAdres.Parameters["@ID"].Value                = adres.ID;
                        commandAdres.Parameters["@straatnaamID"].Value      = adres.straatnaam.ID;
                        commandAdres.Parameters["@huisnummer"].Value        = adres.huisnummer;
                        commandAdres.Parameters["@appartementnummer"].Value = adres.appartementnummer;
                        commandAdres.Parameters["@busnummer"].Value         = adres.busnummer;
                        commandAdres.Parameters["@huisnummerlabel"].Value   = adres.huisnummerlabel;
                        commandAdres.Parameters["@adreslocatieID"].Value    = newLocatieID;
                        commandAdres.ExecuteNonQuery();
                        #endregion
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        Console.WriteLine(ex);
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
        }