Autor Tema: Enlazar clases en asp.net include The name does not exist in the current context  (Leído 2896 veces)

reenurya

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
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.
« Última modificación: 01 de Mayo 2016, 18:13 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

Las clases las tendrás en archivos con un nombre. Ahora desde el archivo asp donde quieras hacer uso de ellas deberás cargarlas. Para ello debes usar la directiva include de esta manera:

<!--#include virtual="nombreFichero"-->

o

<!--#include file ="nombreFichero"-->

Virtual se usa para definir rutas relativas respecto a la raíz del sitio, por ejemplo <!-- #include virtual ="/html/cabecera.inc" -->

file se usa para definir rutas relativas respecto al directorio actual, suponiendo que el fichero está dentro del directorio actual por ejemplo <!-- #include file ="cabeceras\cabecera1.inc" -->


Este es un ejemplo de cargar ficheros:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<body>
<h3>El texto del Quijote:</h3>
<p><!--#include file="quijote.inc"--></p>
<h3>La hora actual es:</h3>
<p><!--#include file="hora.inc"--></p>
</body>
</html>

Del mismo modo, para usar clases que estén en ficheros tendrás que cargar los ficheros correspondientes.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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".