none
Recomendacion - Como usar Procedimientos almacenados

    Pregunta

  • He visto ejemplos de codigo donde se manipulan procedimientos almacenados.

    forma 01:

    veo que los procedimientos almacenados lus usas directamente desde codigo, agregando los parametros y luego ejecutandolos. asi mas o menos:

    cmd.Parameters.AddWithValue("@lastName", customer.LastName);

    cmd.Parameters.AddWithValue("@company", customer.Address);
    cmd.Parameters.AddWithValue("@address", customer.Company);
    cmd.Parameters.AddWithValue("@email", customer.Email);
     
    customer.CustomerId = Convert.ToInt32(cmd.ExecuteScalar());
    forma 02:

    Yo en cambio, creo un dataset tipado en diseño, y ahi agrego los procedimientos alamcenados en tiempo de diseño.
    Luego desde codigo llamo al procedmiento almacenado asi: (Asumiento que mi dataset se llama RemitoComunesDS, y mi datatable  tblCliente)
    Dim TA As New RemitoComunesDSTableAdapters.tblClienteTableAdapter

    nEstado = TA.Insert(pIdCliente, pCliente, pDireccion, pTelefono, pLogin, pClave, pMasDatos)
    ¿cual es la mejor forma de trabajar? ¿Porque?
    Gracias y disculpen si la respuesta es obvia.

    Sr.
    • Editado Terricolaw jueves, 02 de febrero de 2012 18:28
    jueves, 02 de febrero de 2012 18:27

Respuestas

  • ¿cual es la mejor forma de trabajar? ¿Porque?

    es que son distintas formas de lograrlo

    pero ojo el ExecuteScalar() no carga ningun datatable, ese solo ejecuta y devuelve un unico dato

    es mas veo que usas customer.CustomerId, pero eso no es un dataset, pare ser una clase que defines en el codigo

    si usabas dataset se podria hacer

    cmd.Parameters.AddWithValue("@address", customer.Company);
    cmd.Parameters.AddWithValue("@email", customer.Email);
     
    Dim da As New SqlDataAdater(cmd)
    Dim dt As New DataTable
    da.Fill(dt)
    


    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Terricolaw jueves, 02 de febrero de 2012 18:50
    jueves, 02 de febrero de 2012 18:33
  • Gracias por responder..

     

    SI son dos formas muy validas de lograr lo mismo, entonces no hay problema que siga programando de esa manera.

     

    Gracias.


    Sr.
    • Marcado como respuesta Terricolaw jueves, 02 de febrero de 2012 18:50
    jueves, 02 de febrero de 2012 18:49

Todas las respuestas

  • ¿cual es la mejor forma de trabajar? ¿Porque?

    es que son distintas formas de lograrlo

    pero ojo el ExecuteScalar() no carga ningun datatable, ese solo ejecuta y devuelve un unico dato

    es mas veo que usas customer.CustomerId, pero eso no es un dataset, pare ser una clase que defines en el codigo

    si usabas dataset se podria hacer

    cmd.Parameters.AddWithValue("@address", customer.Company);
    cmd.Parameters.AddWithValue("@email", customer.Email);
     
    Dim da As New SqlDataAdater(cmd)
    Dim dt As New DataTable
    da.Fill(dt)
    


    saludos

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Terricolaw jueves, 02 de febrero de 2012 18:50
    jueves, 02 de febrero de 2012 18:33
  • Gracias por responder..

     

    SI son dos formas muy validas de lograr lo mismo, entonces no hay problema que siga programando de esa manera.

     

    Gracias.


    Sr.
    • Marcado como respuesta Terricolaw jueves, 02 de febrero de 2012 18:50
    jueves, 02 de febrero de 2012 18:49