Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/09/2017, 03:41
vistaero
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Rehaciendo programa antiguo que usa una base de datos de Access 97

Hola haggenx, gracias por responder.

Efectivamente se puede usar mdb (estoy con C# .NET, no con VB.NET, pero en esto viene a ser lo mismo). El mismo código que encontré de ejemplo para usar con una base de datos accdb parece funcionar también perfectamente con mdb de Access 97 sin hacerle ningún cambio.

Por ejemplo, este es el método que uso para leer la tabla Clientes:

Código C#:
Ver original
  1. public static Cliente[] ReadClients(string dataBasePath)
  2.         {
  3.             List<Cliente> result = new List<Cliente>();
  4.             string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dataBasePath;
  5.  
  6.             string queryString = "SELECT * FROM Clientes";
  7.             try
  8.             {
  9.                 using (OleDbConnection connection = new OleDbConnection(connectionString))
  10.                 {
  11.                     OleDbCommand command = new OleDbCommand(queryString, connection);
  12.                     connection.Open();
  13.                     OleDbDataReader reader = command.ExecuteReader();
  14.  
  15.                     while (reader.Read())
  16.                     {
  17.                         Cliente readingClient = new Cliente();
  18.                         int.TryParse(reader.GetValue(0).ToString(), out int id);
  19.                         readingClient.Id = id;
  20.                         readingClient.Nombre = reader.GetValue(1).ToString();
  21.                         readingClient.Empresa = reader.GetValue(2).ToString();
  22.                         readingClient.Dirección = reader.GetValue(3).ToString();
  23.                         readingClient.Ciudad = reader.GetValue(4).ToString();
  24.                         readingClient.Provincia = reader.GetValue(5).ToString();
  25.                         readingClient.País = reader.GetValue(6).ToString();
  26.                         readingClient.NIF = reader.GetValue(7).ToString();
  27.                         readingClient.CodigoPostal = reader.GetValue(8).ToString();
  28.                         readingClient.Teléfono = reader.GetValue(9).ToString();
  29.                         readingClient.Fax = reader.GetValue(10).ToString();
  30.                         readingClient.Email = reader.GetValue(11).ToString();
  31.                         readingClient.Notas = reader.GetValue(12).ToString();
  32.                         result.Add(readingClient);
  33.                     }
  34.                     reader.Close();
  35.                 }
  36.             }
  37.             catch (Exception ex)
  38.             {
  39.                 MessageBox.Show(ex.Message);
  40.             }
  41.  
  42.             return result.ToArray();
  43.         }

Muy importante que cualquiera que se encuentre en el mismo problema, que entienda claramente comandos SQL.

Esta página es muy buena para ello, incluso se pueden practicar ahí mismo con una base de datos de ejemplo: https://www.w3schools.com/sql/sql_select.asp