none
Crear base de datos ACCESS mediante código en Visual C#

    Question

  • Hola, esa es mi pregunta, he buscado muxo la solución, pero no la he encontrado todavía...

    quisiera saber de forma simple como crear una base de datos access, creo que se hace con OleDbConnection, pero todavía no puedo hacerla,

    les agradecería si me pudieran ayudar...

    de antemano, gracias

    Sunday, November 28, 2010 12:32 AM

Answers

All replies

  • hola

    justamente en esta otra consulta se planteo el mismo tema

    http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/3434266c-cfe6-4127-b7f4-890f6ee4f2ae

    mas alla que en esa consulta era un entorno web la tecnica es identica

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Sunday, November 28, 2010 12:34 AM
  • hola Leandro.... gracias por tu pronta respuesta...

    soy nuevo en relación a las bd... pero no se como aplicar tu respuesta a mi programa...

    lo q he encontrado en la red, es algo así

    string conex = "Provider = Microsoft.Jet.OLEDB.4.0;" +
    "Data Source = C:\\BaseDatos.mdb;";
    OleDbConnection con;

    string crear = "CREATE TABLE datos(Nombre Char(25), Apellido Char(25)," +
    "Email Char(25))";
    con = new OleDbConnection(conex);
    OleDbCommand cmd = new OleDbCommand(crear,con);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close(

    pero sale error en la línea de con.Open()...... me podrías ayudar con el código de un botón que cree la bd, siguiendo el ejemplo anterior?

    Gracias

    Saludos

     


    Sunday, November 28, 2010 12:40 AM
  • hola

    ese ejemplo que has puesto es justamente lo que se menciona en el link de la otra pregunta

     

    pero sale error en la línea de con.Open()

    puedes ver cual es el mensaje del error que estas obteniendo, eso ayudaria a ver que es lo que ocurre

     

    un poco mas prolijo el codigo podria ser

    string conex = @"Provider = Microsoft.Jet.OLEDB.4.0;
                    Data Source = C:\BaseDatos.mdb;";
    using(OleDbConnection con = new OleDbConnection(conex))
    {
        con.Open();
        string crear = @"CREATE TABLE datos(Nombre Char(25),
                            Apellido Char(25), Email Char(25))";

        OleDbCommand cmd = new OleDbCommand(crear,con);
        cmd.ExecuteNonQuery();
    }

     

    el using asegurara que la conexion se cierre corerectamente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Sunday, November 28, 2010 12:52 AM
  • Puse el código que me propusiste... pero me sale el error en la misma línea : No se pudo encontrar el archivo 'C:\BaseDatos.mdb'.

    gracias por tu ayuda

    saludos

    Sunday, November 28, 2010 1:01 AM

  • el mensaje parece claro, no se encuenta el archivo .mdb

    la pregunta obvia seria, tienes este archivo en el C: de tu pc ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Sunday, November 28, 2010 1:15 AM
  • La idea era crearla a través de código.... pensé que eso estaba haciendo el programa....

    pero veo que es solo para crear la tabla dentro de la bd ya creada....

    hay alguna manera de crearla?

    ....gracias

    saludos

    Sunday, November 28, 2010 1:21 AM
  • ahh tienes razon perdiel concepto de la pregunta, y que se trataba de una db access

    en esta el problema es que requiere un archivo fisico

    en ese caso deberas usar als librerias de ADOX, como explcia este link

    Cómo crear una nueva base de datos Microsoft Access

    para converti el codigo podrias ayudarte de estas tools

    Convert C# to VB.NET

    Code Converter

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Sunday, November 28, 2010 1:33 AM
  • Leandro... nuevamente gracias por tu ayuda...

    encontré la forma de hacerlo..

    dejo el código por si a alguien le sirve

     

    ADOX.CatalogClass cat = new ADOX.CatalogClass();
    
    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
    
    "Data Source = C:\\BaseDatos.mdb;" +
    
    "Jet OLEDB:Engine Type=4");

     

    saludos

    Sunday, November 28, 2010 1:45 AM