ASP.NET - The ConnectionString property has not been initialized.

 
Vista:
Imágen de perfil de Guillermo

The ConnectionString property has not been initialized.

Publicado por Guillermo (8 intervenciones) el 05/01/2015 21:33:01
Hola, como dice el titulo de este tema, luego de operar los controles del webform, y después de un botón Aceptar, obtengo el Error: The ConnectionString property has not been initialized.

A continuación, el código pertinente en el web.config:

<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=.\Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Guillermo\Documents\Datos.accdb;Persist Security Info=False"
providerName="System.Data.OleDb" />
<add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Guillermo\Documents\Datos.accdb"
providerName="System.Data.OleDb" />
</connectionStrings>


Entonces, la consulta es saber donde esta el error, y sobretodo, Como se solucionaa¡¡???

Mil millones de gracias a quien me de una mano, y..................Nos vemos....................
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

The ConnectionString property has not been initialized.

Publicado por Roger Gomez (45 intervenciones) el 06/01/2015 14:01:57
Y el codigo del boton aceptar? es allí donde está apareciendo el error, cierto? Si puedes poner ese código será mas fácil identificar el problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Guillermo

The ConnectionString property has not been initialized.

Publicado por Guillermo (8 intervenciones) el 06/01/2015 16:41:26
Este es el código del botón Aceptar:.....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected void ButtonAceptar_Click(object sender, EventArgs e)
{
    try
    {
        OleDbConnection cnn = new OleDbConnection();
        cnn.Open();
        string sql = string.Empty;
        sql = @"INSERT INTO CursosMaterias (id_Materia, id_Curso, Id_persona)
            VALUES (@idMateria, @idCurso, @idProfesor)";
        OleDbCommand cmd = new OleDbCommand(sql, cnn);
        cmd.Parameters.AddWithValue("@idMateria", Convert.ToString(ViewState["idMateria"]));
        cmd.Parameters.AddWithValue("@idCurso", Convert.ToString(ViewState["idCurso"]));
        cmd.Parameters.AddWithValue("@idProfesor", Convert.ToString(ViewState["idProfesor"]));
    }


Mil millones de gracias por la solución....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

The ConnectionString property has not been initialized.

Publicado por roger (45 intervenciones) el 06/01/2015 16:46:39
Ok, debes pasar la cadena de conexion cuando creas la instancia de la clase OleDbConnection

OleDbConnection cnn = new OleDbConnection("cadena de conexion.......");

en tu caso como la tienes definida en el web.config, será cuestion de que obtengas primero la cadena de conexion desde dicho web.config

string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
OleDbConnection cnn = new OleDbConnection(cadenaConexion);

Supongo que el error se generaba al ejecutar la linea cnn.Open(); pues intentaba abrir una conexion sin especificar la cadena de conexión a usar.

Nota: si no ves la clase WebConfigurationManager, agrega una referencia a System.Configuration en tu proyecto y agrega al principio del archivo using System.Configuration ó System.Web.Configuration

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de GuilloFerrero

The ConnectionString property has not been initialized.

Publicado por GuilloFerrero (8 intervenciones) el 06/01/2015 20:01:44
Gracias Roger, ahora no me figura ningún error, sin embargo, no logro llenar la tabla que quiero llenar........En realidad, son 3 GridsViews independientes en el mismo WebForm, donde, a través de Boton Select, elijo las filas de interés de cada uno de ellos, y luego, con el botón Aceptar, me debería llenar la tabla CursosMaterias, solo esos Campos......

Estoy usando ViewState, pero la sintaxis seria igual con Session............

También estoy utilizando DataKeyNames con lod Ids de cada Tabla que no se muestran en los Grids, pero es lo que quiero meter dentro de la Tabla.........

No se que sucederá, hace 4 o 5 días, no completos, que no puedo llenar la Tabla......

Aquí, todo el código con lo de los Grids y lo que me sugeriste que hiciera por el error del ConnectionString not initialized...

Las Grillas se rellenan automáticamente en el Page_Load......


Si me podes dar una mano, muy agradecido, saludos...


protected void GridMateria_SelectedIndexChanged(object sender, EventArgs e)
{
// Se obtiene la fila seleccionada del gridview

GridViewRow row = GridMateria.SelectedRow;

// Obtengo el id de la entidad que se esta editando
// en este caso de la entidad Materia

ViewState["idMateria"] = Convert.ToInt32(GridMateria.DataKeys[row.RowIndex].Value);

}

protected void GridCurso_SelectedIndexChanged(object sender, EventArgs e)
{
// Se obtiene la fila seleccionada del gridview

GridViewRow row = GridCurso.SelectedRow;

// Obtengo el id de la entidad que se esta editando
// en este caso de la entidad Curso
ViewState["idCurso"] = Convert.ToInt32(GridCurso.DataKeys[row.RowIndex].Value);

}

protected void GridProfesor_SelectedIndexChanged(object sender, EventArgs e)
{
// Se obtiene la fila seleccionada del gridview
GridViewRow row = GridProfesor.SelectedRow;

// Obtengo el id de la entidad que se esta editando
// en este caso de la entidad Profesor
ViewState["idProfesor"] = Convert.ToInt32(GridProfesor.DataKeys[row.RowIndex].Value);
}
protected void ButtonAceptar_Click(object sender, EventArgs e)
{
try
{
string cadenaConexion = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
OleDbConnection cnn = new OleDbConnection(cadenaConexion);
cnn.Open();
string sql = string.Empty;
sql = @"INSERT INTO CursosMaterias (id_Materia, id_Curso, Id_persona)
VALUES (@idMateria, @idCurso, @idProfesor)";
OleDbCommand cmd = new OleDbCommand(sql, cnn);
cmd.Parameters.AddWithValue("@idMateria", Convert.ToString(ViewState["idMateria"]));
cmd.Parameters.AddWithValue("@idCurso", Convert.ToString(ViewState["idCurso"]));
cmd.Parameters.AddWithValue("@idProfesor", Convert.ToString(ViewState["idProfesor"]));
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

The ConnectionString property has not been initialized.

Publicado por roger (45 intervenciones) el 06/01/2015 20:28:24
debes poner un punto de interrupcion para depurar en esta linea

cmd.Parameters.AddWithValue("@idMateria", Convert.ToString(ViewState["idMateria"]));

y mirar que tiene la variable ViewState["idMateria"] por ejemplo

Tambien serviria ponerlo en esta linea

ViewState["idMateria"] = Convert.ToInt32(GridMateria.DataKeys[row.RowIndex].Value);
en el evento GridMateria_SelectedIndexChanged, para ver si en realidad si se está asignando en algun momento, o si el problema empieza desde allí
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de GuilloFerrero

The ConnectionString property has not been initialized.

Publicado por GuilloFerrero (8 intervenciones) el 06/01/2015 21:43:37
Ok, ya veo, pero creo que los puntos no me están diciendo nada........Intento........después te digo, mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 3 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

The ConnectionString property has not been initialized.

Publicado por Horroroso (14 intervenciones) el 12/02/2015 20:04:06
Puedes poner el codigo de Page_Load, creo que alli va a estar tu problema.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar