Obtener datos tablas access
Publicado por Roberto (2 intervenciones) el 31/01/2006 16:00:23
Buenas, tengo un problemilla. Veamos, tengo dos tablas (NUEVOS y PASES) en una base access (tirajes.mdb)de las q quiero sacar datos para rellenar una tercera (PENDIENTES), pero cuando realizo el "insert " (al ejecutar cmd.ExecuteNonQuery() )
me da el siguiente error:
"System.InvalidOperationException: Ya hay un DataReader abierto asociado a esta conexión, debe cerrarlo primero." El codigo es el siguiente:
private void ActualizarPases_Load(object sender, System.EventArgs e)
{
string strConnnectionOle = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=Tirajes.mdb;";
OleDbConnection oleConn = new OleDbConnection(strConnnectionOle);
oleConn.Open();
string cmdSelect ="SELECT NUEVOS.NUMERO,NUEVOS.CODIGO, PASES.PASE FROM [NUEVOS],[PASES] WHERE NUEVOS.CODIGO=PASES.CODIGO";
OleDbDataAdapter canal=new OleDbDataAdapter(cmdSelect, oleConn);
OleDbDataReader result;
result= canal.SelectCommand.ExecuteReader();
while(result.Read())
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = oleConn;
cmd.CommandText ="INSERT INTO [PENDIENTES] VALUES @DATO1,@DATO2,@DATO3)" ;
cmd.Parameters.Add(new OleDbParameter("@DATO1", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO1"].Value = result["NUMERO"].ToString();
cmd.Parameters.Add(new OleDbParameter("@DATO2", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO2"].Value = result["CODIGO"].ToString();
cmd.Parameters.Add(new OleDbParameter("@DATO3", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO3"].Value =result["PASE"].ToString();
cmd.ExecuteNonQuery(); //EL ERROR LO DA AQUÍ
}
result.Close();
oleConn.Close();
}
A ver si alguien sabe como arreglarlo porque ya me estoy volviendo loco
Un saludo a todos
me da el siguiente error:
"System.InvalidOperationException: Ya hay un DataReader abierto asociado a esta conexión, debe cerrarlo primero." El codigo es el siguiente:
private void ActualizarPases_Load(object sender, System.EventArgs e)
{
string strConnnectionOle = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=Tirajes.mdb;";
OleDbConnection oleConn = new OleDbConnection(strConnnectionOle);
oleConn.Open();
string cmdSelect ="SELECT NUEVOS.NUMERO,NUEVOS.CODIGO, PASES.PASE FROM [NUEVOS],[PASES] WHERE NUEVOS.CODIGO=PASES.CODIGO";
OleDbDataAdapter canal=new OleDbDataAdapter(cmdSelect, oleConn);
OleDbDataReader result;
result= canal.SelectCommand.ExecuteReader();
while(result.Read())
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = oleConn;
cmd.CommandText ="INSERT INTO [PENDIENTES] VALUES @DATO1,@DATO2,@DATO3)" ;
cmd.Parameters.Add(new OleDbParameter("@DATO1", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO1"].Value = result["NUMERO"].ToString();
cmd.Parameters.Add(new OleDbParameter("@DATO2", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO2"].Value = result["CODIGO"].ToString();
cmd.Parameters.Add(new OleDbParameter("@DATO3", OleDbType.VarWChar, 30));
cmd.Parameters["@DATO3"].Value =result["PASE"].ToString();
cmd.ExecuteNonQuery(); //EL ERROR LO DA AQUÍ
}
result.Close();
oleConn.Close();
}
A ver si alguien sabe como arreglarlo porque ya me estoy volviendo loco
Un saludo a todos
Valora esta pregunta


0