Ciudades - Persistencia - Ejercicio De Programacion C# Sharp

En este ejercicio, deberás crear una nueva versión de la base de datos de ciudades, utilizando persistencia para almacenar sus datos en lugar de archivos de texto. El objetivo de este ejercicio es aprender a gestionar la persistencia de los datos en C# utilizando bases de datos en lugar de archivos de texto planos. Para ello, deberás modificar la estructura de la base de datos de ciudades para que los datos se almacenen en una base de datos, permitiendo realizar operaciones de lectura, escritura y actualización de manera más eficiente y profesional. Este ejercicio te permitirá entender cómo interactuar con bases de datos, aprender sobre la creación de tablas, consultas y cómo gestionar el ciclo de vida de los datos.

Al crear una versión persistente de la base de datos de ciudades, practicarás cómo almacenar y recuperar información mediante el uso de un sistema de gestión de bases de datos. Esta es una habilidad fundamental en el desarrollo de aplicaciones que necesitan manejar grandes volúmenes de información, garantizando la integridad de los datos y la eficiencia en las operaciones. Además, aprenderás cómo realizar consultas SQL y manejar datos de manera estructurada dentro de una base de datos, lo cual es esencial para aplicaciones en el mundo real.

 Categoría

Persistencia de Objetos

 Ejercicio

Ciudades - Persistencia

 Objectivo

Cree una nueva versión de la "base de datos de ciudades" (que mejoró el 13 de marzo), utilizando la persistencia para almacenar sus datos en lugar de archivos de texto.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Importing necessary namespaces for ADO.NET, collections, and basic functionalities
using System; // For basic functionalities like Console and Exception handling
using System.Collections.Generic; // To use List for storing city objects
using System.Data.SqlClient; // For database operations (ADO.NET)
using System.Configuration; // To retrieve connection string from app.config

// Define the City class to represent a city
class City
{
    public int Id { get; set; } // Unique identifier for the city
    public string Name { get; set; } // Name of the city
    public string Country { get; set; } // Country where the city is located
    public int Population { get; set; } // Population of the city

    // Constructor to initialize the city properties
    public City(int id, string name, string country, int population)
    {
        Id = id; // Assign the city's ID
        Name = name; // Assign the city's name
        Country = country; // Assign the country's name
        Population = population; // Assign the city's population
    }

    // Method to represent the city as a string (for easy display)
    public override string ToString()
    {
        return $"{Name}, {Country}, Population: {Population}"; // Format the city's data as a string
    }
}

// Define a class to handle the persistence (save/load) of City data to/from a SQL Server database
class CityDataPersistence
{
    private string connectionString; // Connection string to connect to the SQL Server database

    // Constructor to initialize the connection string (from app.config or directly)
    public CityDataPersistence(string connectionString)
    {
        this.connectionString = connectionString; // Store the connection string
    }

    // Method to insert a new city into the database
    public void AddCity(City city)
    {
        // SQL query to insert a new city into the Cities table
        string query = "INSERT INTO Cities (Name, Country, Population) VALUES (@Name, @Country, @Population);";

        // Establish a connection to the database
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            // Open the connection
            conn.Open();

            // Create a SqlCommand to execute the query
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                // Add parameters to prevent SQL injection
                cmd.Parameters.AddWithValue("@Name", city.Name);
                cmd.Parameters.AddWithValue("@Country", city.Country);
                cmd.Parameters.AddWithValue("@Population", city.Population);

                // Execute the query to insert the data
                cmd.ExecuteNonQuery();
            }
        }
    }

    // Method to load all cities from the database
    public List GetCities()
    {
        List cities = new List(); // List to store all the cities from the database

        // SQL query to select all cities
        string query = "SELECT Id, Name, Country, Population FROM Cities;";

        // Establish a connection to the database
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            // Open the connection
            conn.Open();

            // Create a SqlCommand to execute the query
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                // Execute the query and get a SqlDataReader to read the results
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    // Read each record from the result set
                    while (reader.Read())
                    {
                        // Create a new City object for each record
                        City city = new City(
                            reader.GetInt32(0), // Id
                            reader.GetString(1), // Name
                            reader.GetString(2), // Country
                            reader.GetInt32(3)  // Population
                        );

                        // Add the city to the list
                        cities.Add(city);
                    }
                }
            }
        }

        return cities; // Return the list of cities
    }
}

// Main class to demonstrate the functionality
class Program
{
    static void Main(string[] args)
    {
        // Connection string to the database (adjust this for your environment)
        string connectionString = "Server=localhost;Database=CitiesDB;Integrated Security=True;";

        // Create an instance of CityDataPersistence to handle database operations
        CityDataPersistence persistence = new CityDataPersistence(connectionString);

        // Create some city objects to add to the database
        City city1 = new City(0, "New York", "USA", 8419600);
        City city2 = new City(0, "Tokyo", "Japan", 13929286);
        City city3 = new City(0, "Paris", "France", 2140526);

        // Add the cities to the database
        persistence.AddCity(city1);
        persistence.AddCity(city2);
        persistence.AddCity(city3);

        // Load all cities from the database
        List cities = persistence.GetCities();

        // Display the loaded cities
        Console.WriteLine("Cities in the database:");
        foreach (var city in cities)
        {
            Console.WriteLine(city); // Print each city's data
        }
    }
}

 Salida

Cities in the database:
New York, USA, Population: 8419600
Tokyo, Japan, Population: 13929286
Paris, France, Population: 2140526

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Persistencia de Objetos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Tabla + matriz + archivos

    En este ejercicio, se te pide que amplíes el ejercicio anterior (tablas + array) añadiendo dos nuevos métodos. El primero de estos métodos debe encargarse de volcar l...

  •  Tabla + SetOfTables + archivos

    En este ejercicio, deberás expandir el ejercicio anterior (tablas + array + archivos) creando tres nuevas clases: Table, SetOfTables...

  •  Insectos + persistencia

    En este ejercicio, debes crear una nueva versión del ejercicio de los insectos, donde se persistan los datos utilizando algún tipo de almacenamiento, como una ...