Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - reenurya

Páginas: [1]
1
Cordial saludo.

Tengo un sistema de votaciones hecho en PHP y utilizando la librerìa mysql (sí, se que ya no se usa pero por problemas con el CMS y por tiempo debo implementarlo así). En la página validar.php decide si un asociado de una empresa ya votó (controlado con una columna val_voto que es tinyint) y si no lo ha hecho, le permite seleccionar de una lista o select de html. Una vez ha votado, se carga otra pàgina que confirma el voto y hace los UPDATES correspondientes (votar.php)

EL problema es que en esta pàgina (votar.php) si el asociado ya votò y vuelve hacia atrás en el navegador, puede votar nuevamente, lo cual es un error dado que sólo puede votar una vez y no ha valido ni funciones de javascript ni borrar la cachè de la página. Anexo los códigos en espera de que alguien me pueda ayudar dado que tengo que entregar este sistema y soy muy novato en php.

valida.php
Código: [Seleccionar]
<style type="text/css">
  label { color: black; font-family: Verdana; text-align: center;}
 
  .centrado{
margin:10px auto;
display:block;
text-align: center;
    }
    H2 { color: black; font-family: Verdana; text-align: center;}
       
    input{
        color: black;
        font-family: Verdana;
      text-align: center;
    }
</style>
<script languaje="javascript">
    function funcion_javascript(){
        alert ("Estimado(a) asociado(a), su voto ya ha sido registrado o ha ingresado mal los datos, favor verif赤quelos e ingrese nuevamente.");
        location.href ="http://www.mipaginaweb.com";
    }
    function nodatos(){
        alert ("Los datos que han ingresado no son correctos, favor ingrese nuevamente");
        location.href ="http://www.mipaginaweb.com/inicio.php";
    }
    function voto(){
        alert ("Estimado(a) asociado(a), su voto ha sido registrado. Gracias por participar");
        location.href ="http://www.mipaginaweb.com";
    }
</script>
<div>
    <img class="centrado" src="logo.png" alt="">
    <h2>LISTADO DE CANDIDATOS A DELEGADOS DE SU ENTIDAD</h2>
</div>
<?php
header
("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");
//conecta a la base de datos
require 'bd.php';  
//se obtienen los datos de un formulario anterior
    $idasoc $_POST['id'];
    $anio $_POST['anio'];
    $mes $_POST['mes'];
    $dia $_POST['dia'];
    $fn $anio."-".$mes."-".$dia;
//consulta que valida si el votante ya votó (val_voto es un tinyint)
        
$ver_votomysql_query("select val_voto from aa_asoc_votan_ent where id_asoc='".$idasoc."'",$serv);
$row mysql_fetch_assoc($ver_voto);
$var$row['val_voto'];
//Valida si la variable var es 'true' y si es asì alerta al asociado y se devuelve a la pàgina inicio.php
if ($var == '')

?>
<script languaje="javascript"> funcion_javascript(); </script> <?php
            
}
//si la variable var es 'false', carga el select
            
else
        {
//Obtiene un código de empresa para listar los candidatos disponibles
$consulta2 mysql_query("SELECT cod_empresa FROM aa_asoc_votan_ent WHERE id_asoc='".$idasoc."'",$serv); 
    while ($row mysql_fetch_array($consulta2))
    {
               $cod_ent $row['cod_empresa']; 
    }
//Consulta que obtiene el listado de los candidatos según la empresa y los carga en un select de html
$consulta3 mysql_query("SELECT iddeleg, nombre FROM aa_delegados WHERE cod_empresa='".$cod_ent."'",$serv); 
?>

                        <div class="centrado">
                            <form method='post' action='votar.php' id="form1">
                                <div>
                            <select name="delegados" autocomplete="off">
                            <option>Seleccione un delegado...</option>
                                        <?
                                            while($row = mysql_fetch_array($consulta3))
                                            {
                                                echo "<option value=".$row['iddeleg'].">".$row['nombre']."</option>";
                                            }
                                        ?>
                                    </select>
                                </div>
                        <div>
                            <input type='submit' name='submit' value='Votar'onsubmit='voto()'>
<!--envía un input oculto con un valor de identificaciòn de asociado para comprobar en votar.php-->
                            <input type='hidden' name='id' value='<?php echo htmlspecialchars($idasoc); ?>' >
                        </div>
                        </form>
                    </div>
<?php
                    
}
//si no hay datos de candidatos que pueda votar el asociado o son incorrectos.                    
                    
else
                    {
                        if(
$filas ==0)
                        {
                            
?>
<script languaje="javascript"> nodatos(); </script>
                        <?php
                        
}
                    }
            }

votar.php
Código: [Seleccionar]
<script type="text/javascript">
window.onload=function(){
Objeto=document.getElementsByTagName("a");
for(a=0;a<Objeto.length;a++){
Objeto[a].onclick=function(){
location.replace(this.href);
return false;
}
}
}
javascript:window.history.forward(1);

function deshabilitaRetroceso(){
    window.location.hash="no-back-button";
    window.location.hash="Again-No-back-button" //chrome
    window.onhashchange=function(){window.location.hash="no-back-button";}
}

function voto(){
   alert ("Estimado(a) asociado(a), su voto ha sido registrado. Gracias por participar");
   location.href ="http://www.feser.com.co";
}
</script>

<html>
 
<?
require 'bd.php';
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
//trae datos de valida.php
    $idd = $_POST['id'];
    $votado = $_POST['delegados'];

 
//Suma un voto al candidato
$consulta4 = mysql_query("UPDATE aa_delegados SET votos=votos+1 where cedula ='".$votado."'",$serv);
//Establece valor de true a la columna val_voto, es decir que el asociado ya votó-
$consulta5 = mysql_query("UPDATE aa_asoc_votan_ent SET valida_voto='true' where cedula ='".$cced."'",$serv);

//si ya votó
$variable = 'true';
if ($variable){
?>
<script languaje="javascript">
voto();
deshabilitaRetroceso();
</script>
<?
}

?>   

</body>
</html>

2
Cordial saludo. Estoy haciendo una página en PHP para wordpress que realiza una consulta en una base de datos, la muestra como tabla en la misma página y luego la exporta en excel. Cuando le doy clic en "Consultar" me redirecciona a una página 404, igualmente antes de validar cualquier cambio en el select me aparece un warning como si no encontrara el valor de la variable name.

Anexo el código en caso de que me puedan ayudar, y gracias.


Código: [Seleccionar]
<div>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
       <div>
            Seleccione periodo:
            <select name="name">
                <option value="0" selected>Haga clic aquí</option>
                <option value="1" <?php if($_POST['name']=='1') echo 'selected="selected" ';?>> ENERO</option>
                <option value="2"  <?php if($_POST['name']=='2') echo 'selected="selected" ';?>>FEBRERO</option>
                <option value="3"  <?php if($_POST['name']=='3') echo 'selected="selected" ';?>>MARZO</option>
                <option value="4"  <?php if($_POST['name']=='4') echo 'selected="selected" ';?>>ABRIL</option>
                <option value="5"  <?php if($_POST['name']=='5') echo 'selected="selected" ';?>>MAYO</option>
                <option value="6"  <?php if($_POST['name']=='6') echo 'selected="selected" ';?>>JUNIO</option>
                <option value="7"  <?php if($_POST['name']=='7') echo 'selected="selected" ';?>>JULIO</option>
                <option value="8"  <?php if($_POST['name']=='8') echo 'selected="selected" ';?>>AGOSTO</option>
                <option value="9"  <?php if($_POST['name']=='9') echo 'selected="selected" ';?>>SEPTIEMBRE</option>
                <option value="10"  <?php if($_POST['name']=='10') echo 'selected="selected" ';?>>OCTUBRE</option>
                <option value="11"  <?php if($_POST['name']=='11') echo 'selected="selected" ';?>>NOVIEMBRE</option>
                <option value="12"  <?php if($_POST['name']=='12') echo 'selected="selected" ';?>>DICIEMBRE</option>
            </select>
            <input type="submit" name="submit" value="Consultar">
            <input type="button" onclick=" generateexcel('testTable') " value="Exportar a Excel">
        </div>
     </form>
</div>



<?php

if(isset($_POST['name'])){ $name $_POST['name']; }

echo 
"<table class='peq' id='testTable'>";

echo 
"<tr>";

 echo 
"<th class='peq'>Codigo</th>";

echo 
"<th class='peq'>Apellidos</th>";

echo 
"<th class='peq'>Nombres</th>";

echo 
"<th class='peq'>Fecha_nacimiento</th>";

echo 
"<th class='peq'>Direccion_domicilio</th>";

echo 
"<th class='peq'>Ciudad</th>";

echo 
"</tr>";

$name $_POST['name'];


ini_set('mssql.charset''UTF-8');

 

$msconnect=mssql_connect("ECOSOL","logfuncionario","F3s3r2017_");

$msdb=mssql_select_db("solido",$msconnect);

$msquery "Select codigo, apellidos, nombres, fecha_nacimiento, direccion_domicilio, ciudad from clientes where periodo=".$name." order by codigo";";

$msresults= mssql_query($msquery);
while (
$row = mssql_fetch_array($msresults)){

echo "
<tr>";
echo "
<td class='peq'>$row[0]</td>";
echo "
<td class='peq'>$row[1]</td>";
echo "
<td class='peq'>$row[2]</td>";
echo "
<td class='peq'>$row[3]</td>";
echo "
<td class='peq'>$row[4]</td>";
echo "
<td class='peq'>$row[5]</td>";

 

echo "
</tr>";

}
echo "
</table>";
?>

3
Cordial saludo.
Cómo puedo hacer para que los validator de esta página sólo se activen cuando deseo insertar un nuevo registro o para validar los datos a actualizar después de hacer clic en el botón?, si no los marco como comentarios apenas cargo los datos me muestra los mensajes del validator. Adjunto código:
Default.aspx.cs:

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;

public partial class _Default : System.Web.UI.Page
{
    //cadena de conexion la declaramos a nivel de la clase para utilizarla en todos los eventos.
    SqlConnection cn = new SqlConnection("Data Source=(local)\\sqlexpress;Initial Catalog=clientes;Persist Security Info=True;User ID=sa;Password=admin+123");

    protected void Page_Load(object sender, EventArgs e)
    {
        this.cargardatos();
    }

    public void cargardatos()
    {
        //hacemos la consulta a la base de datos
        SqlCommand cmd = new SqlCommand("Select * from cliente", cn);

        //objeto adapter para hacer el enlace y llenado del dataset
        SqlDataAdapter adapter = new SqlDataAdapter();

        //asignamos la propiedad selectcommand al objeto command para que ejecute consulta
        adapter.SelectCommand = cmd;

        //abrimos la conexion
        cn.Open();

        //creamos objeto dataset
        DataSet objdataset = new DataSet();

        //llenamos el datable del dataset
        //el metodo fill obtiene los datos recuperados del dataadapter y los coloca dentro del dataset
        adapter.Fill(objdataset);

        //cerramos conexion
        cn.Close();

        //enlazamos los datos al griedvied
        GridView1.DataSource = objdataset;
        GridView1.DataBind();
    }


    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        SqlCommand cmd_sel = new SqlCommand("select_cliente_ok", cn);
        cmd_sel.CommandType = CommandType.StoredProcedure;

        cmd_sel.Parameters.Add("@at_id_cliente", SqlDbType.Decimal);

        cmd_sel.Parameters.Add("@msj", SqlDbType.VarChar, 50);
        cmd_sel.Parameters["@msj"].Direction = ParameterDirection.Output;

        cmd_sel.Parameters["@at_id_cliente"].Value = Convert.ToDecimal(txtBusCC.Text);
        //cmd_sel.Parameters["@msj"].Value = null;

        cn.Open();
        cmd_sel.ExecuteNonQuery();
        SqlDataReader reader = cmd_sel.ExecuteReader();
       

        if (reader.Read())
        {
            txtId.Text = Convert.ToString(cmd_sel.Parameters["@at_id_cliente"].Value);
            txtNom.Text = reader.GetString(0);
            txtDir.Text = reader.GetString(1);
            txtTel.Text = reader.GetString(2);
            lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);
            reader.Close();
        }
        else
        {
            lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);
        }

        this.cargardatos();
    }
   
   

    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        SqlCommand cmd_sel = new SqlCommand("actualiza_cliente3", cn);
        cmd_sel.CommandType = CommandType.StoredProcedure;

        cmd_sel.Parameters.Add("@at_id_cliente", SqlDbType.Decimal);
        cmd_sel.Parameters.Add("@at_mod_id_cliente", SqlDbType.Decimal);
        cmd_sel.Parameters.Add("@at_nom", SqlDbType.VarChar);
        cmd_sel.Parameters.Add("@at_dir", SqlDbType.VarChar);
        cmd_sel.Parameters.Add("@at_tel", SqlDbType.VarChar);

        cmd_sel.Parameters.Add("@msj", SqlDbType.VarChar, 50);
        cmd_sel.Parameters["@msj"].Direction = ParameterDirection.Output;

        cmd_sel.Parameters["@at_id_cliente"].Value = Convert.ToDecimal(txtBusCC.Text);
        cmd_sel.Parameters["@at_mod_id_cliente"].Value = Convert.ToString(txtId.Text);
        cmd_sel.Parameters["@at_nom"].Value = Convert.ToString(txtNom.Text);
        cmd_sel.Parameters["@at_dir"].Value = Convert.ToString(txtDir.Text);
        cmd_sel.Parameters["@at_tel"].Value = Convert.ToString(txtTel.Text);
        cmd_sel.Parameters["@msj"].Value = null;


        cn.Open();
        cmd_sel.ExecuteNonQuery();
        SqlDataReader reader = cmd_sel.ExecuteReader();

        lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);

        this.cargardatos();

    }
}
Default.aspx
Código: [Seleccionar]
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 78%;
        }
        .auto-style2 {
            width: 346px;
        }
        .auto-style3 {
            width: 366px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         <h4>Insertar datos con procedimiento almacenado:</h4> 
        <br />
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>
         <br />
         <table class="auto-style1">
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label5" runat="server" Text="Ingrese el número de cédula a buscar"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtBusCC" runat="server"></asp:TextBox>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label1" runat="server" Text="Cédula:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtId" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtId" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtId" ValidationExpression="^\d+$" ErrorMessage="Por favor ingrese sólo números." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label2" runat="server" Text="Nombre:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtNom" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtNom" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtNom" ValidationExpression="^[A-Z0-9 a-z]*$" ErrorMessage="Por favor ingrese sólo letras y espacios en blanco." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label3" runat="server" Text="Dirección:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtDir" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtDir" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label4" runat="server" Text="Teléfono:"></asp:Label>
                     
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtTel" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtTel" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="txtTel" ValidationExpression="^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$" ErrorMessage="Por favor ingrese un número telefónico válido." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Button ID="btnBuscar" runat="server" OnClick="btnBuscar_Click" Text="Buscar" Width="87px" />
                 </td>
                 <td class="auto-style3">
                     <asp:Label ID="lblEstado" runat="server"></asp:Label>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Button ID="btnActualizar" runat="server" OnClick="btnActualizar_Click" Text="Actualizar" />
                 </td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     &nbsp;</td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     &nbsp;</td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
         </table>
         <br />
        <br />
   
    </div>
    </form>
</body>
</html>


4
Cordial saludo.

Estoy tratando de enlazar unas clases que manejan una base de datos en ASP.NET pero me siguen apareciendo los siguientes errores:

The name ‘titleOfCourtesy’ does not exist in the current context.
The name ‘lastName’ does not exist in the current context.
The name ‘firstName’ does not exist in the current context.
The name ‘EmployeeID’ does not exist in the current context.

Las clases las tome de un libro, pero en este no describen cómo enlazarlas para que conecten a la página aspx. Aquí los códigos de las clases:

EmployeeDB.cs

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web.Configuration;
using WebEmpleados2;




namespace WebEmpleados2
{
    class EmployeeDB
    {
        private string connectionString;

        public EmployeeDB()
        {
            // Get default connection string.

            connectionString = WebConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;
        }

        public EmployeeDB(string connectionString)
        {
            // Set the specified connection string.
            this.connectionString = connectionString;
        }

        public int InsertEmployee(EmployeeDetails emp)
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("InsertEmployee", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 10));
            cmd.Parameters["@FirstName"].Value = emp.FirstName;
            cmd.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 20));
            cmd.Parameters["@LastName"].Value = emp.LastName;
            cmd.Parameters.Add(new SqlParameter("@TitleOfCourtesy",
            SqlDbType.NVarChar, 25));
            cmd.Parameters["@TitleOfCourtesy"].Value = emp.TitleOfCourtesy;
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));
            cmd.Parameters["@EmployeeID"].Direction = ParameterDirection.Output;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                return (int)cmd.Parameters["@EmployeeID"].Value;
            }
            catch (SqlException err)
            {
                // Replace the error with something less specific.
                // You could also log the error now.
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }
        }

        public void DeleteEmployee(int employeeID)
        {

            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("DeleteEmployee", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));
            cmd.Parameters["@EmployeeID"].Value = employeeID;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (SqlException err)
            {
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }

        }

        public void UpdateEmployee(EmployeeDetails emp)
        {

            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("UpdateEmployee", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 10));
            cmd.Parameters["@FirstName"].Value = firstName;
            cmd.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 20));
            cmd.Parameters["@LastName"].Value = lastName;
            cmd.Parameters.Add(new SqlParameter("@TitleOfCourtesy", SqlDbType.NVarChar,
            25));
            cmd.Parameters["@TitleOfCourtesy"].Value = titleOfCourtesy;
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));
            cmd.Parameters["@EmployeeID"].Value = EmployeeID;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (SqlException err)
            {
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }

        }

        public EmployeeDetails GetEmployee(int employeeID)
        {

            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("GetEmployee", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", SqlDbType.Int, 4));
            cmd.Parameters["@EmployeeID"].Value = employeeID;
            try
            {
                con.Open();
                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
                // Check if the query returned a record.
                if (!reader.HasRows) return null;
                // Get the first row.
                reader.Read();
                EmployeeDetails emp = new EmployeeDetails(
                (int)reader["EmployeeID"], (string)reader["FirstName"],
                (string)reader["LastName"], (string)reader["TitleOfCourtesy"]);
                reader.Close();
                return emp;
            }
            catch (SqlException err)
            {
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }

        }

        public List<EmployeeDetails> GetEmployees()
        {

            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("GetAllEmployees", con);
            cmd.CommandType = CommandType.StoredProcedure;
            // Create a collection for all the employee records.
            List<EmployeeDetails> employees = new List<EmployeeDetails>();
            try
            {
                con.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {

                    EmployeeDetails emp = new EmployeeDetails(
                    (int)reader["EmployeeID"], (string)reader["FirstName"],
                    (string)reader["LastName"], (string)reader["TitleOfCourtesy"]);
                    employees.Add(emp);
                }
                reader.Close();
                return employees;
            }
            catch (SqlException err)
            {
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }


        }

        public int CountEmployees()
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("CountEmployees", con);
            cmd.CommandType = CommandType.StoredProcedure;
            try
            {
                con.Open();
                return (int)cmd.ExecuteScalar();
            }
            catch (SqlException err)
            {
                throw new ApplicationException("Data error.");
            }
            finally
            {
                con.Close();
            }
        }
    }
}


EmployeeDetails.cs

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace WebEmpleados2
{
    public class EmployeeDetails
    {
        private int employeeID;
        public int EmployeeID
        {
            get { return employeeID; }
            set { employeeID = value; }
        }
        private string firstName;
        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }
        private string lastName;
        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }
        private string titleOfCourtesy;
        public string TitleOfCourtesy
        {
            get { return titleOfCourtesy; }
            set { titleOfCourtesy = value; }
        }
        public EmployeeDetails(int employeeID, string firstName, string lastName,
        string titleOfCourtesy)
        {
            EmployeeID = employeeID;
            FirstName = firstName;
            LastName = lastName;
            TitleOfCourtesy = titleOfCourtesy;
        }
    }
}


Default.aspx.cs:

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebEmpleados2;
using System.Text;

namespace WebEmpleados2
{
    public partial class Default : System.Web.UI.Page
    {
        // Create the database component so it's available anywhere on the page.
        private EmployeeDB db = new EmployeeDB();

        protected void Page_Load(object sender, EventArgs e)
        {
            WriteEmployeesList();
            // The ID value is simply set to 0, because it's generated by the
            // database server and filled in automatically when you call
            // InsertEmployee().
            int empID = db.InsertEmployee(
            new EmployeeDetails(0, "Mr.", "Bellinaso", "Marco"));
            Label1.Text += "<br />Inserted 1 employee.<br />";
            WriteEmployeesList();
            db.DeleteEmployee(empID);
            Label1.Text += "<br />Deleted 1 employee.<br />";
            WriteEmployeesList();
        }
        private void WriteEmployeesList()
        {
            StringBuilder htmlStr = new StringBuilder("");
            int numEmployees = db.CountEmployees();
            htmlStr.Append("<br />Total employees: <b>");
            htmlStr.Append(numEmployees.ToString());
            htmlStr.Append("</b><br /><br />");
            List<EmployeeDetails> employees = db.GetEmployees();
            foreach (EmployeeDetails emp in employees)
            {
                htmlStr.Append("<li>");
                htmlStr.Append(emp.EmployeeID);
                htmlStr.Append(" ");
                htmlStr.Append(emp.TitleOfCourtesy);
                htmlStr.Append(" <b>");
                htmlStr.Append(emp.FirstName);
                htmlStr.Append("</b>, ");
                htmlStr.Append(emp.LastName);
                htmlStr.Append("</li>");
            }
            htmlStr.Append("<br />");
            Label1.Text += htmlStr.ToString();
        }
    }
}

Espero me puedan ayudar. Gracias.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".