Persistencia De Datos De Ciudades En C# Con Base De Datos

Este ejercicio se centra en la creación de una nueva versión del programa "Cities Database". En lugar de usar archivos de texto, esta versión utilizará la persistencia para almacenar los datos de las ciudades en una base de datos. Creará una conexión de base de datos simple para almacenar y recuperar datos relacionados con las ciudades. El programa demuestra cómo interactuar con una base de datos para almacenar y gestionar datos de forma más estructurada y persistente.



Grupo

Persistencia de Objetos en C#

Objectivo

1. Cree una clase "Ciudad" con propiedades como Nombre, País y Población.
2. Implemente métodos para conectarse a una base de datos e insertar, recuperar y mostrar datos de la ciudad.
3. Use una base de datos SQLite simple o cualquier base de datos relacional para almacenar la información de la ciudad.
4. Implemente la funcionalidad para persistir los datos de la ciudad en la base de datos y garantizar que se puedan recuperar al ejecutar el programa.

Cree una nueva versión de la "base de datos de ciudades", utilizando la persistencia para almacenar sus datos en lugar de archivos de texto.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.Data.SQLite; // SQLite library for database operations

class City
{
    // Properties of the City class
    public string Name { get; set; }
    public string Country { get; set; }
    public int Population { get; set; }

    // Constructor for the City class
    public City(string name, string country, int population)
    {
        Name = name;
        Country = country;
        Population = population;
    }
}

class CityDatabase
{
    // SQLite connection string
    private string connectionString = "Data Source=cityDatabase.db;Version=3;";

    // Method to create the database and the Cities table
    public void CreateDatabase()
    {
        using (SQLiteConnection conn = new SQLiteConnection(connectionString))
        {
            conn.Open();
            string createTableQuery = "CREATE TABLE IF NOT EXISTS Cities (Name TEXT, Country TEXT, Population INTEGER)";
            SQLiteCommand cmd = new SQLiteCommand(createTableQuery, conn);
            cmd.ExecuteNonQuery();
        }
    }

    // Method to insert a new city into the database
    public void InsertCity(City city)
    {
        using (SQLiteConnection conn = new SQLiteConnection(connectionString))
        {
            conn.Open();
            string insertQuery = "INSERT INTO Cities (Name, Country, Population) VALUES (@Name, @Country, @Population)";
            SQLiteCommand cmd = new SQLiteCommand(insertQuery, conn);
            cmd.Parameters.AddWithValue("@Name", city.Name);
            cmd.Parameters.AddWithValue("@Country", city.Country);
            cmd.Parameters.AddWithValue("@Population", city.Population);
            cmd.ExecuteNonQuery();
        }
    }

    // Method to retrieve all cities from the database
    public void DisplayCities()
    {
        using (SQLiteConnection conn = new SQLiteConnection(connectionString))
        {
            conn.Open();
            string selectQuery = "SELECT * FROM Cities";
            SQLiteCommand cmd = new SQLiteCommand(selectQuery, conn);
            SQLiteDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine($"Name: {reader["Name"]}, Country: {reader["Country"]}, Population: {reader["Population"]}");
            }
        }
    }
}

class Program
{
    static void Main()
    {
        CityDatabase database = new CityDatabase();

        // Create the database and the Cities table if they don't exist
        database.CreateDatabase();

        // Inserting some city data into the database
        City city1 = new City("Madrid", "Spain", 3200000);
        City city2 = new City("Berlin", "Germany", 3700000);
        City city3 = new City("Tokyo", "Japan", 14000000);
        
        database.InsertCity(city1);
        database.InsertCity(city2);
        database.InsertCity(city3);

        // Displaying all cities from the database
        Console.WriteLine("Cities in the database:");
        database.DisplayCities();
    }
}

 Output

Cities in the database:
Name: Madrid, Country: Spain, Population: 3200000
Name: Berlin, Country: Germany, Population: 3700000
Name: Tokyo, Country: Japan, Population: 14000000

Comparte este ejercicio de C#

Practica más ejercicios C# de Persistencia de Objetos en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..