Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Rehaciendo programa antiguo que usa una base de datos de Access 97

Estas en el tema de Rehaciendo programa antiguo que usa una base de datos de Access 97 en el foro de .NET en Foros del Web. Buenas, tengo que rehacer un programa de contabilidad antiguo, que se hizo a medida para una empresa en vb6, y que ya no funciona con ...
  #1 (permalink)  
Antiguo 07/09/2017, 09:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 2
Rehaciendo programa antiguo que usa una base de datos de Access 97

Buenas, tengo que rehacer un programa de contabilidad antiguo, que se hizo a medida para una empresa en vb6, y que ya no funciona con versiones modernas de Windows.

El programa trabajaba con una base de datos en formato .mdb de Access 97, y el usuario quiere seguir utilizando esa misma base de datos.

Mi cuestión es, ¿es aconsejable o tan siquiera posible seguir con ese formato en una aplicación hecha con .NET Framework 4.6.1 (y C#)? ¿deberia actualizarla a .accdb? ¿tal vez convertirla a otro formato de base de datos?

He leído que en el caso de accdb, debo utilizar ADO.NET. ¿Habrá algún buen código de ejemplo o tutorial sobre cómo manejarlo?

Lo básico ya lo tengo hecho: por ejemplo, para la tabla Clientes, que tiene las propiedades id, nombre, dirección... he hecho una clase llamada Cliente con las mismas propiedades, y un array de Cliente. Ahora "solo" necesitaría saber leer la base de datos, acceder a esa tabla, y leer los clientes para rellenar el array.

Y al revés, si se modifica por ejemplo el teléfono del cliente con id 100, ir al cliente 100 de la base de datos y guardar la nueva información.

Es la primera vez que trabajo con bases de datos, ¿alguna ayudita?

Gracias de antemano.

Última edición por vistaero; 07/09/2017 a las 10:18
  #2 (permalink)  
Antiguo 10/09/2017, 20:17
Avatar de haggenx  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 823
Antigüedad: 17 años, 9 meses
Puntos: 24
Respuesta: Rehaciendo programa antiguo que usa una base de datos de Access 97

puedes usar mdb con vb.net sin problemas, lo que no se si se vaya poder conectar a access 97, necesitarás investigar cual es la cadena de conexión para ese modelo de db.
__________________
Mi blog informático http://marjuanm.blogspot.mx
Fanpage del blog https://www.facebook.com/pages/Mis-p...36397183215592
  #3 (permalink)  
Antiguo 16/09/2017, 03:41
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 15 años
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
  #4 (permalink)  
Antiguo 18/09/2017, 22:28
Avatar de haggenx  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 823
Antigüedad: 17 años, 9 meses
Puntos: 24
Respuesta: Rehaciendo programa antiguo que usa una base de datos de Access 97

Cita:
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.
interesante, gracias por compartirlo
__________________
Mi blog informático http://marjuanm.blogspot.mx
Fanpage del blog https://www.facebook.com/pages/Mis-p...36397183215592
  #5 (permalink)  
Antiguo 21/09/2017, 13:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 15 años
Puntos: 2
Respuesta: Rehaciendo programa antiguo que usa una base de datos de Access 97

Añado que debe estar Office 2007 instalado. Hoy he probado el programa en un PC que solo tenía la versión 2013 instalada y salía un error diciendo que es imposible abrir una base de datos creada con una versión anterior de la aplicación.

Etiquetas: access, antiguo, programa, versiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.