public Straat MaakStraat(int straatId) { Straat straat = null; SqlConnection connection = getConnection(); SqlConnection connection2 = getConnection(); //om meerdere readers tegelijk te kunnen uitvoeren! string queryStraat = "Select * FROM dbo.straat WHERE id=@straatId"; string querySegment = "SELECT * FROM dbo.segment WHERE straatId=@straatId"; string queryBeginknoop = "SELECT * FROM dbo.knoop WHERE id=@beginknoopId"; string queryEindknoop = "SELECT * FROM dbo.knoop WHERE id=@eindknoopId"; string queryPunt = "SELECT * FROM dbo.punt WHERE segmentId=@segmentId"; using (SqlCommand command1 = connection.CreateCommand()) using (SqlCommand command2 = connection.CreateCommand()) using (SqlCommand command3 = connection2.CreateCommand()) using (SqlCommand command4 = connection2.CreateCommand()) using (SqlCommand command5 = connection2.CreateCommand()) { connection.Open(); connection2.Open(); SqlTransaction transaction = connection.BeginTransaction(); command1.Transaction = transaction; command2.Transaction = transaction; // SqlTransaction transaction2 = connection2.BeginTransaction(); command3.Transaction = transaction2; command4.Transaction = transaction2; command5.Transaction = transaction2; try { //Straat maken command1.Parameters.Add(new SqlParameter("@straatId", SqlDbType.Int)); command1.CommandText = queryStraat; command1.Parameters["@straatId"].Value = straatId; SqlDataReader dataReader = command1.ExecuteReader(); dataReader.Read(); string straatnaam = (string)dataReader["straatnaam"]; string gemeente = (string)dataReader["gemeente"]; string provincie = (string)dataReader["provincie"]; int graafId = (int)dataReader["graafId"]; float lengte = (float)dataReader["lengte"]; dataReader.Close(); //Segmenten List <Segment> segmenten = new List <Segment>(); command2.Parameters.Add(new SqlParameter("@straatId", SqlDbType.Int)); command2.CommandText = querySegment; command2.Parameters["@straatId"].Value = straatId; dataReader = command2.ExecuteReader(); while (dataReader.Read()) { int segmentId = (int)dataReader["id"]; int beginknoopId = (int)dataReader["beginknoop"]; int eindknoopId = (int)dataReader["eindknoop"]; //beginknoop command3.Parameters.Add(new SqlParameter("@beginknoopId", SqlDbType.Int)); command3.CommandText = queryBeginknoop; command3.Parameters["@beginknoopId"].Value = beginknoopId; SqlDataReader reader = command3.ExecuteReader(); reader.Read(); string bx = (string)reader["x"]; string by = (string)reader["y"]; Punt beginknooppunt = new Punt(double.Parse(bx), double.Parse(by)); Knoop beginknoop = new Knoop(beginknoopId, beginknooppunt); reader.Close(); command3.Parameters.Clear(); //eindknoop command4.Parameters.Add(new SqlParameter("@eindknoopId", SqlDbType.Int)); command4.CommandText = queryEindknoop; command4.Parameters["@eindknoopId"].Value = eindknoopId; reader = command4.ExecuteReader(); reader.Read(); string ex = (string)reader["x"]; string ey = (string)reader["y"]; Punt eindknooppunt = new Punt(double.Parse(ex), double.Parse(ey)); Knoop eindknoop = new Knoop(eindknoopId, eindknooppunt); reader.Close(); command4.Parameters.Clear(); //punten List <Punt> punten = new List <Punt>(); command5.Parameters.Add(new SqlParameter("@segmentId", SqlDbType.Int)); command5.CommandText = queryPunt; command5.Parameters["@segmentId"].Value = segmentId; reader = command5.ExecuteReader(); while (reader.Read()) { Punt punt = new Punt(double.Parse((string)reader["x"]), double.Parse((string)reader["y"])); punten.Add(punt); } reader.Close(); command5.Parameters.Clear(); Segment segment = new Segment(segmentId, beginknoop, eindknoop, punten); segmenten.Add(segment); } dataReader.Close(); Graaf graaf = new Graaf(segmenten, graafId); straat = new Straat(straatId, straatnaam, graaf, provincie, gemeente, lengte); return(straat); } catch (Exception ex) { Console.WriteLine(ex); } finally { connection.Close(); } } return(straat); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); DataBevrager db = new DataBevrager("Data Source=DESKTOP-HT91N8R\\SQLEXPRESS;Initial Catalog=db_Wegennet;Integrated Security=True"); Console.WriteLine("Wat wenst u te doen (Typ het nummer)?"); Console.WriteLine("1. Lijst van straatID's van een gemeente opvragen"); Console.WriteLine("2. Straatinfo opvragen via een straatID"); Console.WriteLine("3. Straatinfo opvragen via straatnaam en gemeentenaam"); Console.WriteLine("4. Alle straatnamen van een gemeente opvragen (alfabetische volgorde)"); Console.WriteLine("5. Een overzichtsrapport voor een provincie"); Console.WriteLine("6. Alle straatnamen grenzend aan een straat opvragen"); int keuze = int.Parse(Console.ReadLine().Trim('.', ' ')); switch (keuze) { case 1: Console.WriteLine("Van welke gemeente wenst u de straatID's op te vragen?"); string gemeente = Console.ReadLine().ToLower(); List <int> straatIDs = db.GeefStraatIDs(gemeente); foreach (int straatID in straatIDs) { Console.WriteLine(straatID); } break; case 2: Console.WriteLine("Van welke straatID wenst u de straatinfo? (geef straatID) "); int straatId = int.Parse(Console.ReadLine()); Straat straat = db.MaakStraat(straatId); straat.showStraat(); break; case 3: Console.WriteLine("Geef de straatnaam:"); string straatnaam = Console.ReadLine().ToLower(); Console.WriteLine("Geef de gemeentenaam:"); string gemeentenaam = Console.ReadLine().ToLower(); Straat straat2 = db.MaakStraat(straatnaam, gemeentenaam); straat2.showStraat(); break; case 4: Console.WriteLine("Geef de gemeentenaam:"); string gemeentenaam2 = Console.ReadLine(); List <string> straatnamen = db.GeefStraatnamenVanGemeente(gemeentenaam2); foreach (string straatnaam2 in straatnamen) { Console.WriteLine(straatnaam2); } break; case 5: Console.WriteLine("Geef de provincie:"); string provincie = Console.ReadLine(); db.GeefProvincieoverzicht(provincie); break; case 6: Console.WriteLine("Geef een straatID: "); int strId = int.Parse(Console.ReadLine()); List <string> aangrenzendeStraten = db.GeefAangrenzendeStraten(strId); foreach (string straat3 in aangrenzendeStraten) { Console.WriteLine(straat3); } break; } }