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(); } } }
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); }
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("-----------------------------------------------------------------------"); }
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(); } } }