elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Base datos c#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Base datos c#  (Leído 5,228 veces)
F3RN1

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Base datos c#
« en: 24 Mayo 2008, 16:59 pm »

Hola estoy haciendo una aplicación en c# que utiliza una bd creada con access. Quiero hacer un codigo de prueba para ver si me doy conectao bien y parece ser que no. Miren el codigo es el siguiente:

Código:
public class BD
        {
            DataSet myDataSet;
            string AccessCon;
            OleDbConnection myAccessCon;

            public BD()
            {
                myAccessCon = null;
                AccessCon = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=C:\\Documents and Settings\\F3RN1\\Mis documentos\\Base_de_Datos_DAS.accdb";
                myDataSet = new DataSet();
            }

            public void conexion()
            {
                try
                {
                    myAccessCon = new OleDbConnection(AccessCon);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: No se pudo establecer la conexión con la Base de Datos. \n{0}", ex.Message);
                    return;
                }
            }

            public void recuperar(String sentencia, String tabla)
            {
                try
                {
                    OleDbCommand myAccessCommand = new OleDbCommand(sentencia, myAccessCon);
                   
                    OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);

                    myAccessCon.Open();
                    myDataAdapter.Fill(myDataSet, tabla);

                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: Fallo al recuperar los datos desde la Base de Datos.\n{0}", ex.Message);
                    return;
                }
                finally
                {
                    myAccessCon.Close();
                 
                }
            }

            public void mostrar()
            {
             
                DataTableCollection dta = myDataSet.Tables;
                foreach (DataTable dt in dta)
                {
                   
                    //Console.WriteLine("Encontrada la Tabla {0}", dt.TableName);
                    MessageBox.Show("Encontrada la Tabla {0}", dt.TableName);
                }

               
            }

        }

Esa clase me la he creado yo y ahora en el Form 1 en este método tengo esto:

Código:
private void porNºClienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            baseD = new BD();

            baseD.conexion();

            baseD.recuperar("Select * from Articulos","Articulos");

            baseD.mostrar();

He estado traceando y parece ser que va pasando bien po todo el codigo pero dentro del método mostrar() no entra dentro del foreach y por eso no me muestra el messageBox. ¿Que estoy haciendo mal?.

Decir que mi base de datos en access se llama Base_De_Datos_Das.accdb y tiene dos tablas, Artículos (con datos) y Clientes (vacia de momento).


Un saludo


En línea

MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: Base datos c#
« Respuesta #1 en: 9 Junio 2008, 01:52 am »

pues es puramente error de logica, cual? no tengo idea... :laugh: :laugh: :laugh:, intenta depurar y pon un punto de interrupcion en el inicio del foreach, y fijate cuantas tablas te estan quedando en el DataTableCollection. probare y te cuento en caso del algo.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


En línea


HappyLellow

Desconectado Desconectado

Mensajes: 6



Ver Perfil WWW
Re: Base datos c#
« Respuesta #2 en: 11 Junio 2008, 19:57 pm »

Buenas,

Por pura lógica, si en el método mostrar no está pasando por el foreach es porque el DataSet no contiene ninguna tabla así que el error estaría en el método que ejecutas antes. Suponiendo que la tabla Artículos tenga algún registro, ¿has comprobado que le asignas la conexión al OleDbDataAdapter?

Por cierto, también te puede servir leer esto:
Citar
El objeto IDbConnection asociado al comando select debe ser válido, aunque no es necesario que esté abierto. Si la interfaz IDbConnection está cerrada antes de llamar a Fill, se abre para recuperar datos y, a continuación, se cierra. Si la conexión está abierta antes de llamar a Fill, permanece abierta.

Saludos.
En línea

Whatever stops you from dreamin'
Whatever trys to stop you from livin'
Flip it
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines