none
C# y SQLServer 2003 RRS feed

  • Pregunta

  • Hola a todos.

    Bueno amigos mi problema es un poco complicado, lo que pasa es que tengo un excel, con el cual llego un datagridview, ahora quiero guardar esos datos a una base de datos SQLServer 2003, el problema es como hago que seleccione algunas filas del execl y las inserte en varias tablas?.

    El excel tiene como 20 columnas, pero por ejemplo las primeras 5 van a una tabla, las otras 5 en otra tabla y asi como se hace eso ?

    De ante mano muchas gracias.
    • Cambiado Gustavo Larriera miércoles, 9 de diciembre de 2009 14:58 +Adecuado. (De:SQL Server)
    viernes, 4 de diciembre de 2009 13:03

Todas las respuestas

  • Pues deberias separar los datos en la aplicacion .Net que hagas, es decir, para cada fila p.e. los 5 primeros campos, necesitarás ejecutar tantas sentencias sql como filas y tablas tengas...
    Mi Blog: Jtorrecilla
    viernes, 4 de diciembre de 2009 13:12
    Moderador
  • Estoy igual que tu mono, asi de loco estoy con el tema es que lo que pasa es que nose mucho osea la verdad nose nada de C# y tengo que emigrar un programa que esta en visual 6.0 entonces no cacho ni una, ya llene un datagridview para mi es un logro jejej, pero bueno no cacho lo que me estas diciendo no tienes algun ejemplo de como podria hacerlo ?


    Gracias de todos modos.
    viernes, 4 de diciembre de 2009 13:22
  • Hola te pongo un poco como sería:

    Crea un boton:

    dentro del Click: pon algo asi:
    OleDBCommand cmd;
    for each DataRow row in Grid.Rows
    {
    cmd=new oledbCommand();
    cmd.connection=tuconexion;
    cmd.commandText ="insert into tabla1 (lista de campos...) values(par1,par2...(tantos como necesites)";
    cmd.parameters.addwithvalue(par1,row.cells[0]); 'esto tantas veces como parametros tengas y campos tengas q meter en cada insert
    cmd.executenonquery();
    repetir el proceso anterior con las distintas tablas.

    }

    Mi Blog: Jtorrecilla
    viernes, 4 de diciembre de 2009 13:30
    Moderador
  • Amigo sorry que te pregunte, pero es que tengo que hacerlo para poder entender bien. copio el mismo codigo que me diste cambiando tuconexion, donde dice lista de campos(se refiere a como se llaman en la base de datos ?) par1,par2(esos son los campos que vienen del execl? y que nombre le pongo los que tienen como titulo o las glosas?(A,B,C,A1,B2) por ejemplo nose cual de las 2 cosas se ponen), si me explicaras eso yo puedo seguir y te contare como me salio todo ;)

    Gracias amigo por la dedicacion que le pones, se le agradece.

    Saludos.
    viernes, 4 de diciembre de 2009 13:43
  • Hola.

    Mira lo probe y me lanza error.

    private void b_guardar_Click(object sender, EventArgs e)
            {
                OleDBCommand cmd;
                foreach (DataRow row in Mi_Tabla .Rows)
                    {
                        cmd=new oledbCommand ();
                        cmd.connection=conexion ;
                        cmd.commandText ="insert into Localidades_prueba (Loc_Local_Suc,Loc_Subtipo,Loc_Direccion,Loc_Comuna,Loc_Tipo_Atm,Loc_Tipo_Hcrit,Loc_Suc_Atv,Loc_Tipo_Dcrit) values(U,R,V,X,P,,AL,)";
                        cmd.parameters.addwithvalue(U ,row.cells [0]); //esto tantas veces como parametros tengas y campos tengas q meter en cada insert
                        cmd.parameters.addwithvalue(R , row.cells [0]);
                        cmd.parameters.addwithvalue(V , row.cells [0]);
                        cmd.parameters.addwithvalue(X , row.cells [0]);
                        cmd.parameters.addwithvalue(P , row.cells [0]);
                        cmd.parameters.addwithvalue(AL , row.cells [0]);
                        cmd.executenonquery();
                    }
            }

    ya hay nose que me esta pasando.

    ayudaa

    Saludos, Gracias
    viernes, 4 de diciembre de 2009 20:00
  • OleDBCommand  es distinto de  oledbCommand  y C# es tipado, por lo cual tendras que usar el nombre tal como es, distinguiendo de mayusculas y minusculas. Que es Mi_tabla???, y conexion???? esta conexion deberia ser una variable de tipo OleDBConnection  que tendria que estar declarada previamente.

    cuando dices  Mi_Tabla .Rows te estas refiriendo a las rows de un datatable, crei que las tenias en un gridview,
    y por eso mismo row.cells [0] no te funciona, porque row pertenece a un datatable y no tiene cells, DataGridViewRow que pertenece a un DataGridView si tiene cells;  y no sabria que es U,V,R, X, Etc
    viernes, 4 de diciembre de 2009 21:01
  • Ahhh ya te entendi, mira Mi_Tabla es el nombre del datatable, porque el datagridview se llama dgv , y eso de conexion es porque tengo una clase que hay tengo esa conexion, nose si esta bien lo que estoy haciendo.... amigo tu me podrias ayudar con un pedazo de codigo bien hecho de como se hace este procedimiento??

    Bueno saludos.

    Gracias.
    lunes, 7 de diciembre de 2009 12:03
  • Amigos lo que me pasa en realidad es que estoy trabajando con un datadridview y un datatable entonces como como guardar los datos del datagridview ayudaaa por favor.


    graciaaas
    lunes, 7 de diciembre de 2009 15:41
  • Amigo, lo que pasa es que estoy trabajando con un datatable y un datagridview, nose si esta correcto trabajar asi.

    si alguien me puede dar alguna ayudadida de algun codigo se los agradeceria....

    De ante mano Muchas gracias.
    miércoles, 9 de diciembre de 2009 12:27
  • Si lo que necesitas es guardar la información del grid en la BD, tendrás que recorrer las filas, y comprobar si existe en BD utilizar una instruccion UPDATE y si no existe usar una instruccion INSERT.
    Mi Blog: Jtorrecilla
    miércoles, 9 de diciembre de 2009 12:35
    Moderador
  • es que la idea principal es que ingresra los datos y el correlativo que tiene es que cuando se ingrese sea la fecha del dia que se esta ingresando entonces esa fecha seria el correlativo.

    Me podrias ayudar con algun pedazo de codigo? es que de verdad que no se nada de C# de hecho estoy aprendinendo hace poco, por favor si es que tienes algun ejemplo de como se hace lo que quiero hacer te lo agradeceria.

    Gracias.
    miércoles, 9 de diciembre de 2009 13:23
  • Ya amigo.

    me aclare mas la pelicula viendo algunas cosas. Lo que pasa es que tengo un datatable y quiero hacer un insert a una BD con un procedimiento de almacenado que tampoco de hacerlo porque no me pasaron eso en el instituto.

    Pero eso es lo que quiero, sorry si es que no me podia explicar bien pero que hasta yo estaba enrredado en esto ya que no se nada de esto.

    Ahora si es que me puedes ayudar con un pedaso de codigo seria genial para ver como se hace.

    De ante mano Muchas Gracias.
    miércoles, 9 de diciembre de 2009 13:49