Error al leer ConnectionString desde el archivo App.config

Tengo este archivo App.config:

<?xml version="1.0" encoding="utf-8" ?>

  
    
  

que estoy usando aquí:

string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ToString();

Aquí recibo un error 'NullReferenceException no fue manejado' ...
¿Por qué recibo este error?
Gracias !!

Intenté esto también, pero obteniendo el mismo error:

 string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString;
 string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString.ToString();

Nota: He agregado System.configuration y también configuré la referencia a él.
También me gustaría que supiera que tengo 3 proyectos (administrador, empleado, base de datos) en un solo proyecto (ABC). He agregado la referencia de la base de datos a administrador y empleado. Y luego hizo la clase Base de datos en esos dos proyectos donde sea necesario para obtener conexión.
La clase de base de datos es la siguiente:

 public class database
     {
            SqlConnection connection;
            string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ToString();
            public SqlConnection connect()
            {
                connection=new SqlConnection(connstring);
                return connection;
            }
        }

Es en el proyecto de base de datos que he agregado el archivo App.config.

1
Trabajando para mi ¿Está seguro de que solo obtiene una referencia nula en esta línea?
agregado el autor Rohit Vats, fuente
Intenté lo mismo que tú y está funcionando. ¿Está seguro de que la conexión puede acceder al archivo App.Config?
agregado el autor Nipuna, fuente
Intenté lo mismo que tú y está funcionando. ¿Está seguro de que la conexión puede acceder al archivo App.Config?
agregado el autor Nipuna, fuente

6 Respuestas

Intente algo como esto:

string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString;
0
agregado
Compruebe app.config ... ¿tiene que estar en el proyecto en ejecución?
agregado el autor Rahul Tripathi, fuente
Debe estar en el proyecto que es el ejecutable, no el proyecto de base de datos.
agregado el autor user1908061, fuente
No funciona.. :(
agregado el autor ash, fuente
Debe estar en el proyecto Base de Datos ¿verdad? Como estoy pasando la cadena de conexión de la base de datos a otros proyectos.
agregado el autor ash, fuente

Intente algo como esto:

string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString;
0
agregado
Compruebe app.config ... ¿tiene que estar en el proyecto en ejecución?
agregado el autor Rahul Tripathi, fuente
Debe estar en el proyecto que es el ejecutable, no el proyecto de base de datos.
agregado el autor user1908061, fuente
No funciona.. :(
agregado el autor ash, fuente
Debe estar en el proyecto Base de Datos ¿verdad? Como estoy pasando la cadena de conexión de la base de datos a otros proyectos.
agregado el autor ash, fuente

La forma correcta de leer la cadena de conexión es leerla a través de la propiedad ConnectionString.

 string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString;

por cierto que he intentado y esto funciona igual de bien

string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ToString();

lo que significa que el código no es un problema. Agregue su app.config en el proyecto exe. Si agrega app.config en el proyecto principal (exe), también puede acceder a él en la base de datos, ya que se agrega app.config de su ejecutable a la base de datos. bin (a menos que se agregue cualquier otro explícitamente).

0
agregado
@EhsanUllah: en lugar de publicar la misma respuesta, podría tener otra respuesta. Publicar exactamente la misma respuesta no agrega ningún valor a esta publicación.
agregado el autor Rohit Vats, fuente
Bueno, eso es una pregunta separada ahora. Publíquelo con el código en otra pregunta y lo echaré un vistazo. Puede aceptar este uno sin embargo,
agregado el autor Ehsan, fuente
@ash verifica la respuesta actualizada. Agrega tu app.config en el proyecto exe.
agregado el autor Ehsan, fuente
@ash si Admin y Employee son 2 ejecutables separados de lo que debería estar en ambos. Abra la carpeta bin y verá que app.config del proyecto de base de datos no estará presente allí. Después de agregar a tus ejecutables estará allí.
agregado el autor Ehsan, fuente
@RohitVats He publicado que el código no es un problema. No puedes bajar la respuesta correcta.
agregado el autor Ehsan, fuente
@ash en el modo de depuración lo encontrará en la bandeja, mientras que en el modo de liberación lo encontrará en la carpeta de la versión.
agregado el autor Ehsan, fuente
@RohitVats ¿le importaría eliminar su voto negativo en una respuesta aceptada?
agregado el autor Ehsan, fuente
@ash creo que tu problema no es este código. No tienes app.config en el proyecto y este es el error de lectura
agregado el autor Ehsan, fuente
Lo encontré ... Gracias v.v.much .. :)
agregado el autor ash, fuente
@EhsanUllah Revisé la carpeta bin de ambos proyectos ejecutables y no encontré el archivo de configuración. Ya he lanzado mi proyecto. ¿Podría ser esta la razón por la que ahora el archivo de configuración no se agrega a bin?
agregado el autor ash, fuente
Consulta la pregunta actualizada.
agregado el autor ash, fuente
Gracias, funcionó ... :) El error desapareció ... Aunque ahora no recibo ningún error pero no se leen datos de la base de datos ...
agregado el autor ash, fuente
@Ehsan Ullah Mis proyectos, Administrador y Empleado, son ambos exe, pero les paso la cadena de conexión desde la Base de datos haciendo referencia a ambos. ¿Entonces el App.config no debería estar en la base de datos? Pero debo intentar lo que me dijiste.
agregado el autor ash, fuente
No funciona.. :(
agregado el autor ash, fuente

La forma correcta de leer la cadena de conexión es leerla a través de la propiedad ConnectionString.

 string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ConnectionString;

por cierto que he intentado y esto funciona igual de bien

string connstring = ConfigurationManager.ConnectionStrings["ACWConnectionString"].ToString();

lo que significa que el código no es un problema. Agregue su app.config en el proyecto exe. Si agrega app.config en el proyecto principal (exe), también puede acceder a él en la base de datos, ya que se agrega app.config de su ejecutable a la base de datos. bin (a menos que se agregue cualquier otro explícitamente).

0
agregado
@EhsanUllah: en lugar de publicar la misma respuesta, podría tener otra respuesta. Publicar exactamente la misma respuesta no agrega ningún valor a esta publicación.
agregado el autor Rohit Vats, fuente
@RohitVats He publicado que el código no es un problema. No puedes bajar la respuesta correcta.
agregado el autor Ehsan, fuente
@ash verifica la respuesta actualizada. Agrega tu app.config en el proyecto exe.
agregado el autor Ehsan, fuente
@ash si Admin y Employee son 2 ejecutables separados de lo que debería estar en ambos. Abra la carpeta bin y verá que app.config del proyecto de base de datos no estará presente allí. Después de agregar a tus ejecutables estará allí.
agregado el autor Ehsan, fuente
Bueno, eso es una pregunta separada ahora. Publíquelo con el código en otra pregunta y lo echaré un vistazo. Puede aceptar este uno sin embargo,
agregado el autor Ehsan, fuente
@ash en el modo de depuración lo encontrará en la bandeja, mientras que en el modo de liberación lo encontrará en la carpeta de la versión.
agregado el autor Ehsan, fuente
@RohitVats ¿le importaría eliminar su voto negativo en una respuesta aceptada?
agregado el autor Ehsan, fuente
@ash creo que tu problema no es este código. No tienes app.config en el proyecto y este es el error de lectura
agregado el autor Ehsan, fuente
Gracias, funcionó ... :) El error desapareció ... Aunque ahora no recibo ningún error pero no se leen datos de la base de datos ...
agregado el autor ash, fuente
Lo encontré ... Gracias v.v.much .. :)
agregado el autor ash, fuente
@EhsanUllah Revisé la carpeta bin de ambos proyectos ejecutables y no encontré el archivo de configuración. Ya he lanzado mi proyecto. ¿Podría ser esta la razón por la que ahora el archivo de configuración no se agrega a bin?
agregado el autor ash, fuente
@Ehsan Ullah Mis proyectos, Administrador y Empleado, son ambos exe, pero les paso la cadena de conexión desde la Base de datos haciendo referencia a ambos. ¿Entonces el App.config no debería estar en la base de datos? Pero debo intentar lo que me dijiste.
agregado el autor ash, fuente
No funciona.. :(
agregado el autor ash, fuente
Consulta la pregunta actualizada.
agregado el autor ash, fuente

Agregue una referencia a System.Configuration.dll , luego debería poder usar System.Configuration.ConfigurationManager .

0
agregado

Agregue una referencia a System.Configuration.dll , luego debería poder usar System.Configuration.ConfigurationManager .

0
agregado