Problema con Command.

02/10/2006 - 18:56 por Juan Suarez | Informe spam
Hola que tal?

Tengo el siguiente codigo:

Es una consulta, luego leo los datos por medio de un dataReader, dentro de
ese dataReader hago otra consulta pa concatenar los colores por cada una de
las referencias que me devuelve el primer dataReader. Sospecho que cuando el
primer DataReader es de mas de 100 registros cuando esta llegando al numero
100 genera el error, siempre me lo saca en el mismo registro, y tienen un
consecutivo, por eso mi corazonada.

Este es el error:

"Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en
system.data.dll"

Si controlo las excepciones lo muestra asi:

System.Data.OleDbException
Error no especificado.


strSql = "SELECT Referencia, Linea, Grupo, SubGrupo, Descripcion " +
"FROM Tbl_Referencias WHERE Linea = '" + cmbLineas.SelectedValue.ToString()
+ "'";
OleDbConnection oleConn = new OleDbConnection(strConexion);
oleConn.Open();
OleDbCommand oleCmd = new OleDbCommand(strSql,oleConn);
OleDbDataReader oleDr = oleCmd.ExecuteReader();
while(oleDr.Read())
{
//Concateno los colores por referencia.
strSql = "SELECT Tbl_ColoresXRef.Color, Tbl_Colores.Descripcion FROM
Tbl_ColoresXRef, Tbl_Colores " +
"WHERE Tbl_ColoresXRef.Referencia = '" + oleDr.GetString(0) + "' " +
"AND Tbl_ColoresXRef.Color = Tbl_Colores.Cod_Color";
oleConn = new OleDbConnection(strConexion);
oleConn.Open();
OleDbCommand oleCmdColores = new OleDbCommand(strSql,oleConn);
//Aqui se genera el error
OleDbDataReader oleDrColores = oleCmdColores.ExecuteReader();
StringBuilder sb = new StringBuilder(1000);
while (oleDrColores.Read())
{
sb.AppendFormat(oleDrColores.GetString(1) + "- ");
}
oleDrColores.Close();
}
oleDr.Close();


Espero puedan ayudarmeSuerte y Muchas gracias.

Juan Suarez
 

Leer las respuestas

#1 Juan Suarez
02/10/2006 - 19:05 | Informe spam
Problema solucionado
Solo basto con poner:
oleConn.Close();
Despues de terminar de leer los dataReader.

Juan Suarez
"Juan Suarez" escribió en el mensaje
news:
Hola que tal?

Tengo el siguiente codigo:

Es una consulta, luego leo los datos por medio de un dataReader, dentro de
ese dataReader hago otra consulta pa concatenar los colores por cada una
de las referencias que me devuelve el primer dataReader. Sospecho que
cuando el primer DataReader es de mas de 100 registros cuando esta
llegando al numero 100 genera el error, siempre me lo saca en el mismo
registro, y tienen un consecutivo, por eso mi corazonada.

Este es el error:

"Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en
system.data.dll"

Si controlo las excepciones lo muestra asi:

System.Data.OleDbException
Error no especificado.


strSql = "SELECT Referencia, Linea, Grupo, SubGrupo, Descripcion " +
"FROM Tbl_Referencias WHERE Linea = '" +
cmbLineas.SelectedValue.ToString() + "'";
OleDbConnection oleConn = new OleDbConnection(strConexion);
oleConn.Open();
OleDbCommand oleCmd = new OleDbCommand(strSql,oleConn);
OleDbDataReader oleDr = oleCmd.ExecuteReader();
while(oleDr.Read())
{
//Concateno los colores por referencia.
strSql = "SELECT Tbl_ColoresXRef.Color, Tbl_Colores.Descripcion FROM
Tbl_ColoresXRef, Tbl_Colores " +
"WHERE Tbl_ColoresXRef.Referencia = '" + oleDr.GetString(0) + "' " +
"AND Tbl_ColoresXRef.Color = Tbl_Colores.Cod_Color";
oleConn = new OleDbConnection(strConexion);
oleConn.Open();
OleDbCommand oleCmdColores = new OleDbCommand(strSql,oleConn); //Aqui se
genera el error
OleDbDataReader oleDrColores = oleCmdColores.ExecuteReader();
StringBuilder sb = new StringBuilder(1000);
while (oleDrColores.Read())
{
sb.AppendFormat(oleDrColores.GetString(1) + "- ");
}
oleDrColores.Close();
}
oleDr.Close();


Espero puedan ayudarmeSuerte y Muchas gracias.

Juan Suarez

Preguntas similares