obtener cadena de conexion de web.config + asp.net 4
-
jueves, 09 de febrero de 2012 4:16
Hola
Estoy desarrollando un sitio con asp.net 4 he definido unas clases para el acceso a datos y quiero dentro de esta clase obtener la cadena de conexión desde el web.config.
este es el codigo que tengo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using TCC_Envios.Entidades;
namespace TCC_Envios.DataAcces
{
public static class ServicioDAL
{
private static SqlConnection con = new SqlConnection();
public static List<ServicioEntidad> ObtenerTodos()
{
List<ServicioEntidad> list = new List<ServicioEntidad>();
ConnectionStringSettings strConnString = ConfigurationManager.ConnectionStrings["Default"];
con.ConnectionString = strConnString.ConnectionString;
using (SqlConnection conn = new SqlConnection(con.ConnectionString.ToString()))
{
conn.Open();
string sql = @"SELECT Id, Nombre, Descripcion FROM Servicios ORDER BY Nombre";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(Cargar(reader));
}
}
return list;
}}
}
Pero cuando ejecuto esto me dice "No se puede encontrar el tipo o el nombre de espacio de nombres 'ConnectionStringSettings' (¿falta una directiva using o una referencia de ensamblado?)"
he visto en algunos foros que lo que tengo es que agregar una referencia en el sitio web a "system.configuration" pero cuando intento hacer esto visual studio 2010 me informa que ya existe esta referencia.
¿Quisiera saber que debo configurar para que no me muestre error, o que errores tengo en el codigo?
Agradezco su colaboración
Cordial saludo.
Respuestas
-
jueves, 09 de febrero de 2012 5:07Moderador
hola
que sucede si haces
con.ConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Jason Ulloa jueves, 09 de febrero de 2012 13:23
- Marcado como respuesta Eduardo PorteschellerModerator martes, 14 de febrero de 2012 11:21
Todas las respuestas
-
jueves, 09 de febrero de 2012 5:07Moderador
hola
que sucede si haces
con.ConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Jason Ulloa jueves, 09 de febrero de 2012 13:23
- Marcado como respuesta Eduardo PorteschellerModerator martes, 14 de febrero de 2012 11:21
-
jueves, 09 de febrero de 2012 16:27
Yo te aconsejaria crear una clase en la que definas el connection string.. algo así
public static string ConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString;
}
}
public static string ConnectionStringName
{
get
{
return ConfigurationManager.AppSettings["ConnectionStringName"];
}
}Luego en la clase que definas el acceso a datos solo deberias hacer esto:
using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString))
-
viernes, 10 de febrero de 2012 3:05
Hola leandro
De antemano agradezco tu colaboración, te cuento que al colocar este sentencia que propones obtengo el siguiente error:
" El nombre 'ConfigurationManager' no existe en el contexto actual "
He pensado que son errores del net framework o visual studio ¿si es posible que pueda ser por eso?
Cordial saludo
-
viernes, 10 de febrero de 2012 3:11
Hola ThomYorkkk
Agradezco tu colaboración, hize la prueba con el codigo que me sugeriste pero obtuve el error:
" El nombre 'ConfigurationManager' no existe en el contexto actual "
¿Porque crees que se pueda dar este error?
cordial saludo.
-
viernes, 10 de febrero de 2012 8:43
Porque no has añadido la referencia en el proyecto.
Menú Proyecto, Agregar referencia y seleccionas System.Configuration.
Si no es así, trata de llamar a la clase implícitamente:
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Default"].ConnectionString;

