/// <summary>
        /// Evento de clic del botón Guardar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void imgbtnGuardar_Click(object sender, DirectEventArgs e)
        {
            //1. Obtener datos de la Forma y saber si es edición o nuevo
            string strRegistro = e.ExtraParams["registro"];

            //2. Por cada elemento del submit de la Forma detectar el campo y asignarlo al objeto correspondiente
            Dictionary<string, string> dRegistro = JSON.Deserialize<Dictionary<string, string>>(strRegistro);
            CodigoPostal cp = new CodigoPostal();
            foreach (KeyValuePair<string, string> sd in dRegistro)
            {
                switch (sd.Key)
                {
                    case "cmbEstado":
                        cp.Estado = sd.Value;
                        break;
                    case "cmbMunicipio":
                        cp.Municipio = sd.Value;
                        break;
                    case "cmbColonia":
                        cp.Colonia = sd.Value;
                        break;
                    case "txtCP":
                        cp.Numero = Convert.ToInt32(sd.Value);
                        break;
                }
            }

            //3. Insertar en la base de datos
            cp.Id = CodigoPostalBusiness.Insertar(cp);
            e.ExtraParamsResponse.Add(new Ext.Net.Parameter("data", cp.Id, ParameterMode.Value));
        }
 public void ActualizarCodigoPostal(string strID, int icp)
 {
     CodigoPostal cp = new CodigoPostal();
     cp.Id = strID;
     cp.Numero = icp;
     CodigoPostalBusiness.Actualizar(cp);
 }
 /// <summary>
 /// Método que inserta un nuevo registro a la tabla de CodigosPostales
 /// </summary>
 /// <param name="iCodigoPostal"></param>
 public static string Insertar(CodigoPostal iCodigoPostal)
 {
     return CodigoPostalDataAccess.Insertar(iCodigoPostal);
 }
 /// <summary>
 /// Método que actualiza algun Codigo Postal por su ID
 /// </summary>
 /// <param name="dID"></param>
 public static int Actualizar(CodigoPostal cp)
 {
     return CodigoPostalDataAccess.Actualizar(cp);
 }
        /// <summary>
        /// Método que actualiza algun Codigo Postal por su ID
        /// </summary>
        /// <param name="dID"></param>
        public static int Actualizar(CodigoPostal icp)
        {
            try
            {
                //1. Configurar la conexión y el tipo de comando
                SqlConnection sqlcConectar = new SqlConnection(ConfigurationManager.ConnectionStrings["OSEF"].ConnectionString);
                SqlCommand sqlcComando = new SqlCommand();
                sqlcComando.Connection = sqlcConectar;
                sqlcComando.CommandType = CommandType.StoredProcedure;
                sqlcComando.CommandText = "web_spU_ActualizarCodigoPostal";

                //2. Declarar los parametros
                SqlParameter sqlpID = new SqlParameter();
                sqlpID.ParameterName = "@ID";
                sqlpID.SqlDbType = SqlDbType.Char;
                sqlpID.Size = 10;
                sqlpID.Value = icp.Id;

                SqlParameter sqlpEstado = new SqlParameter();
                sqlpID.ParameterName = "@IdEstado";
                sqlpID.SqlDbType = SqlDbType.Char;
                sqlpID.Size = 2;
                sqlpID.Value = icp.Estado;

                SqlParameter sqlpMunicipio = new SqlParameter();
                sqlpID.ParameterName = "@IdMunicipio";
                sqlpID.SqlDbType = SqlDbType.Char;
                sqlpID.Size = 4;
                sqlpID.Value = icp.Municipio;

                SqlParameter sqlpColonia = new SqlParameter();
                sqlpID.ParameterName = "@IdColonia";
                sqlpID.SqlDbType = SqlDbType.Char;
                sqlpID.Size = 10;
                sqlpID.Value = icp.Colonia;

                SqlParameter sqlpNumero = new SqlParameter();
                sqlpID.ParameterName = "@Numero";
                sqlpID.SqlDbType = SqlDbType.Int;
                sqlpID.Value = icp.Numero;

                //3. Agregar los parametros al comando
                sqlcComando.Parameters.Add(sqlpID);

                //4. Abrir la conexión
                sqlcComando.Connection.Open();

                //5. Ejecutar la instrucción DELETE que no regresa filas
                int result = sqlcComando.ExecuteNonQuery();

                //6. Cerrar la conexión
                sqlcComando.Connection.Close();

                //7. Regresar el resultado
                return result;
            }
            catch (Exception ex)
            {
                throw new Exception("Error capa de datos (public static int Actualizar(CodigoPostal " + icp + ")): " + ex.Message);
            }
        }
        /// <summary>
        /// Método que inserta un nuevo registro a la tabla de CodigosPostales
        /// </summary>
        /// <param name="iCodigoPostal"></param>
        public static string Insertar(CodigoPostal iCodigoPostal)
        {
            try
            {
                //1. Configurar la conexión y el tipo de comando
                SqlConnection sqlcConectar = new SqlConnection(ConfigurationManager.ConnectionStrings["OSEF"].ConnectionString);
                SqlCommand sqlcComando = new SqlCommand();
                sqlcComando.Connection = sqlcConectar;
                sqlcComando.CommandType = CommandType.StoredProcedure;
                sqlcComando.CommandText = "web_spI_InsertarCodigoPostal";

                //2. Declarar los parametros
                SqlParameter sqlpID = new SqlParameter();
                sqlpID.ParameterName = "@ID";
                sqlpID.SqlDbType = SqlDbType.Char;
                sqlpID.Value = iCodigoPostal.Id;
                sqlpID.Size = 10;
                sqlpID.Direction = ParameterDirection.Output;

                SqlParameter sqlpEstado = new SqlParameter();
                sqlpEstado.ParameterName = "@Estado";
                sqlpEstado.SqlDbType = SqlDbType.Char;
                sqlpEstado.Value = iCodigoPostal.Estado;

                SqlParameter sqlpMunicipio = new SqlParameter();
                sqlpMunicipio.ParameterName = "@Municipio";
                sqlpMunicipio.SqlDbType = SqlDbType.Char;
                sqlpMunicipio.Value = iCodigoPostal.Municipio;

                SqlParameter sqlpColonia = new SqlParameter();
                sqlpColonia.ParameterName = "@Colonia";
                sqlpColonia.SqlDbType = SqlDbType.Char;
                sqlpColonia.Value = iCodigoPostal.Colonia;

                SqlParameter sqlpNumero = new SqlParameter();
                sqlpNumero.ParameterName = "@Numero";
                sqlpNumero.SqlDbType = SqlDbType.Int;
                sqlpNumero.Value = iCodigoPostal.Numero;

                //3. Agregar los parametros al comando
                sqlcComando.Parameters.Add(sqlpID);
                sqlcComando.Parameters.Add(sqlpEstado);
                sqlcComando.Parameters.Add(sqlpMunicipio);
                sqlcComando.Parameters.Add(sqlpColonia);
                sqlcComando.Parameters.Add(sqlpNumero);

                //4. Abrir la conexión
                sqlcComando.Connection.Open();

                //5. Ejecutar la instrucción INSERT que regresa un dato que es el ID
                int result = Convert.ToInt32(sqlcComando.ExecuteScalar());

                //6. Cerrar la conexión
                sqlcComando.Connection.Close();

                //7. Regresar el resultado
                return sqlcComando.Parameters["@ID"].Value.ToString();
            }
            catch (Exception ex)
            {
                throw new Exception("Error capa de datos (public static int Insertar(CodigoPostal " + iCodigoPostal.Numero + ")): " + ex.Message);
            }
        }