Buenas tardes a todos, ya que es mí primer post (y tranquilos, no será el
último) lo primero presentarme, me llamo Roberto y soy de Gijon (España).
Hace poco tiempo que me "pego" con visual c# y me a surgido 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
Roberto
Leer las respuestas