none
¿ Como actualizar tuplas desde un dataset en c# a un procedimiento almacenado en sql server?

    Question

  • Buenas, les comento mi duda que me ha surgido, en la aplicación que estoy desarrollando existe diferentes tablas, a algunas de estas tablas se le ejecuta un select que nos devuelven unos resultados, estos resultados son cargados en un dataset en la capa de negocio y mostrado en la capa vista por un datagrid, después se realizan cambios tales como nuevas filas, eliminación actualización, todo ello mediante el datagrid y observable collections, hasta ahi todo sin problemas, el temas es como actualizo esos datos despues mediante un procedimento almacenado, muy importante este punto, debe de ser un procedimiento almacenado, he probado con sql dinámicas pero a veces por una coma o carácter extraño se cae la consulta, pensé en cada vez que existe un cambio atacar directamente a sql server con varios procedimientos que eliminan, insertar y actualizan, pero el tema es no estaré utilizando la potencia del datagrid e bloqueare bastante el sql server, os pongo más datos.

    1) Las tablas tienen indices autoincrementables.

    2) Si es posible se debería de enviar solo los datos que se han modificado.

    Muchas gracias.

     ACTUALIZACIÓN :

    He leido sobre el tipo de entrada de los procedimientos sqlstructure  pero parece ser que no me es valido por varias razones,una que la tabla debe de ser de solo lectura y otra que debo de pasar los datos a una tabla temporal, yo lo que necesito es poder actualizar, eliminar e insertar en la misma tabla,  puede ser que no me haya enterado bien.

     ACTUALIZACIÓN 2 :

    He probado todo y funciona perfecto, lo único que ocurre es que hay que crear tipos de tabla y después crear tablas temporales,  a causa de esto el redimiento y lo posible bloqueos se multiplican, he leído sobre las variables de tablas pero no me funciona, es posible que  el parametro de entrada  sqlstructure no admita variables de tabla, me inetersan mas las variables de tabla por que una vez que el procedimiento termine desaparece esta variable de tabla y para los registros que se manejan en este caso que son pocos es más aconsejable que tablas temporales, pues esta es mi duda

    Es posible utilizar el parametro de entrada sqlstructure con variables tabla y no tablas temporales.

    Saludos.

     
    • Edited by WpfSoft Monday, September 10, 2012 12:11 PM
    • Moved by Eder CostaOwner Monday, September 17, 2012 1:15 PM (De:SQL Server)
    Monday, September 10, 2012 8:56 AM

All replies

  • Creo que es más una pregunta de programación que de SQL Server
    Monday, September 10, 2012 9:11 AM
  • Muchas gracias Carlos por la respuesta, el tema en cuestión es la unión de ambos, tanto de c# como del procedimiento en si, lee por favor la actualización que he puesto en la pregunta.

    Saludos.

     
    Monday, September 10, 2012 9:17 AM
  • "tipo de entrada de los procedimentos sqlestructure"... no entiendo a qué te refieres con eso. ¿Estás hablando de parámetros tipo tabla? Porque por los comentarios que haces después, todo apunta a ello.

    Si fuera el caso, puedes usar esa aproximación. Aunque no sea la tabla final, nada te impide añadir un campo más a esa tabla que fuera el tipo de acción a realizar (inserción, actualización o borrado) y luego ejecutar la instrucción correspondiente dentro del procedimiento, o bien usar la instrucción MERGE que lo realiza todo a la vez

    Monday, September 10, 2012 9:39 AM
  • Exactamente Carlos, estoy hablando del parámetro de entrada tipo SqlStructure, ahora mismo acabo de encontrar un ejemplo de la utilización del tipo anteriormente comentado, este es el link.

    http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters

    Monday, September 10, 2012 9:49 AM
  • ACTUALIZACIÓN 2 :

    He probado todo y funciona perfecto, lo único que ocurre es que hay que crear tipos de tabla y después crear tablas temporales,  a causa de esto el redimiento y lo posible bloqueos se multiplican, he leído sobre las variables de tablas pero no me funciona, es posible que  el parametro de entrada  sqlstructure no admita variables de tabla, me inetersan mas las variables de tabla por que una vez que el procedimiento termine desaparece esta variable de tabla y para los registros que se manejan en este caso que son pocos es más aconsejable que tablas temporales, pues esta es mi duda

    Es posible utilizar el parametro de entrada sqlstructure con variables tabla y no tablas temporales

    Monday, September 10, 2012 12:12 PM
  • Hola.

    ¿Resolviste el problema? Lo de SqlStructure no es un concepto de SQL Server, si no de C#. A lo mejor recibirías ayuda más eficaz en el foro de C#.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    Sunday, September 16, 2012 9:58 AM
  • Hola WpfSoft!

    Tu post se trasladará al foro más apropiado para tu pregunta.

    Saludos


    Eder Costa
    LATAM Forum Support Engineer
    Microsoft Corporation


    Monday, September 17, 2012 1:14 PM
    Owner