none
actualizar datos asp.net base de datos RRS feed

  • Pregunta

  • buenas compañeros 

    un favor loque sucede es que no me actualizan los datso de mi desarrolo como puedo me podrian corregir sitengo algo mal agradezco su ayuda

                                                  

     public partial class modificacionCliente : System.Web.UI.Page
        {
            private readonly string cadenaDeConexion = "Data source=ECS-DESARROLLO; Initial Catalog=prueba;user Id=sa; password=sacv4ecs";
            protected void Page_Load(object sender, EventArgs e)
            {


                string idtelefono = Convert.ToString(Request.QueryString["idtelefono"]);
                consulta__telefono(idtelefono);

            }
            protected void consulta__telefono(string idTelefono)
            {

                    int retorno = 0;

                    SqlConnection conexion = new SqlConnection(cadenaDeConexion);
                    conexion.Open();
                    SqlCommand comando = new SqlCommand();
                    comando.Connection = conexion;

                    comando.CommandText = "pConsultarTelefonoCliente";
                    comando.CommandType = System.Data.CommandType.StoredProcedure;
                    comando.Parameters.Add("@idTelefono", System.Data.SqlDbType.Int).Value= idTelefono ;

                    try
                    {
                        retorno = comando.ExecuteNonQuery();
                        SqlDataReader dato = comando.ExecuteReader();
                        if (dato.Read())
                        {

                            txtnumero.Text = dato["numero"].ToString();
                            txttipo.Text = dato["tipo"].ToString();
                            txtclase.Text = dato["clase"].ToString();
                            txtext.Text = dato["ext"].ToString();

                        }

                    }
                    catch (Exception ex)
                    {
                        String error = ex.Message;
                    }
                    finally
                    {
                        conexion.Close();
                    }

            }

            protected void btmodificar_Click(object sender, EventArgs e)
            {
                if (Page.IsValid)
                {

                    int retornar = 0;
                SqlConnection conexion = new SqlConnection(cadenaDeConexion);
                conexion.Open();
                SqlCommand comando = new SqlCommand();
                comando.Connection = conexion;
                comando.CommandText = "pActualizarTelefono";
                comando.CommandType = System.Data.CommandType.StoredProcedure;
                comando.Parameters.Add("@idTelefono", System.Data.SqlDbType.Int).Value = Lbid.Text.ToString();
                comando.Parameters.Add("@Numero", System.Data.SqlDbType.VarChar).Value = txtnumero.Text.ToString();
                comando.Parameters.Add("@tipo", System.Data.SqlDbType.VarChar).Value = txttipo.Text.ToString();
                comando.Parameters.Add("@clase", System.Data.SqlDbType.VarChar).Value = txtclase.Text.ToString();
                comando.Parameters.Add("@ext", System.Data.SqlDbType.VarChar).Value = txtext.Text.ToString();
                try
                {
                    retornar = comando.ExecuteNonQuery();

                }
                catch (Exception ex)
                {
                    String error = ex.Message;
                }
                finally
                {
                    conexion.Close();
                }
                txtnumero.Text = "";
                txttipo.Text = "";
                txtclase.Text = "";
                txtext.Text = "";
                mensaje.Text = "";

            }
                else
                {
                    mensaje.Text = "Por favor valide la información ingresada.";
                }
                }

            protected void Btpricipal_Click(object sender, EventArgs e)
            {
                Server.Transfer("WebForm1.aspx", true);
            }
        }
    }

    mis procesos almacenados son los siguientes

    ALTER PROCEDURE  [dbo].[pActualizarTelefono] 

     @idTelefono int,     
              @numero varchar(50),
              @tipo varchar(50),
         @clase varchar(50),
         @ext varchar(50)
    AS 

    BEGIN

       update Telefono 
       set Numero = @numero,
    Tipo=@tipo,
    Clase=@clase,
       Ext=@ext
        where idTelefono =  @idTelefono
    end

    ALTER PROCEDURE  [dbo].[pConsultarTelefonoCliente] (@idTelefono int)
    as
    begin
       select  Numero,Tipo,Clase,Ext  from Telefono


     where   idTelefono=@idTelefono
        
    end

    jueves, 28 de abril de 2016 14:26

Respuestas

  • El ID se lo estás pasando a partir de Lbid.Text. Pero en todo el código que has puesto no se ve ningún sitio donde antes salves ese valor en el Lbid. Probablemente donde deberías hacerlo es detrás del dato.Read(), donde asignas todos los textboxes. Ahí tendrías que añadir Lbid.Text=dato["idTelefono"].ToString();
    jueves, 28 de abril de 2016 18:43

Todas las respuestas

  • Así a simple vista, y a grandes rasgos, parece que el código está bien. El fallo tiene que ser algo no evidente a simple vista. Para eso tenemos el Debugger en Visual Studio. Pon un punto de ruptura al principio del btnModificar_Click, y sigue la ejecución paso a paso examinando las variables en cada punto, hasta que llegues a la llamada al procedimiento almacenado (o hasta que detectes un punto en el que no valgan lo que esperabas que valiesen). Si al procedimiento le llegan correctos todos los valores, entonces tendríamos que pasar a depurar el procedimiento en sql server, pero primero haz el seguimiento a ver si todo va bien hasta ese punto.
    jueves, 28 de abril de 2016 16:52
  • es que le id no me esta llegando entonces no se sabe que campo se va a actualizar

    como lo traigo agradezco tu ayuda

    jueves, 28 de abril de 2016 16:53
  • El ID se lo estás pasando a partir de Lbid.Text. Pero en todo el código que has puesto no se ve ningún sitio donde antes salves ese valor en el Lbid. Probablemente donde deberías hacerlo es detrás del dato.Read(), donde asignas todos los textboxes. Ahí tendrías que añadir Lbid.Text=dato["idTelefono"].ToString();
    jueves, 28 de abril de 2016 18:43