sql >> Database >  >> RDS >> Oracle

Fout met OracleDataReader. Fout:Ongeldige bewerking. De verbinding is gesloten

U moet de verbinding openen en ook sql-parameters gebruiken. Hopelijk is dit de juiste orakel-syntaxis, want ik kan het niet testen:

using(var con = new OracleConnection("ConnectionString Here"))
using(var cmd = new OracleCommand("ADD YOUR INSERT/UPDATE/DELETE", con))
{
    con.Open();
    cmd.ExecuteNonQuery();
    using (var cm = new OracleCommand("select round(avg(rating),1)As AvgRating from rates where id_rec = @id", con))
    {
        cm.Parameters.AddWithValue("@id", id);
        using (var reader = cm.ExecuteReader())
        {
            if (reader.Read())
            {
                textBox5.Text = reader.GetInt16(0).ToString();
            }
        }
    }
}

Merk op dat ik de using . heb gebruikt -verklaring om ervoor te zorgen dat alle onbeheerde middelen zo snel mogelijk worden verwijderd. Het sluit ook verbindingen (zelfs bij fouten).

Bewerken :Aangezien u slechts een enkele waarde selecteert, raad ik aan om ExecuteScalar te gebruiken :

using (var cm = new OracleCommand("select round(avg(rating),1)As AvgRating from rates where id_rec = @id", con))
{
    cm.Parameters.AddWithValue("@id", id);
    object avgRating = cm.ExecuteScalar();
    if (!(avgRating is DBNull))
    {
        textBox5.Text = avgRating.ToString();
    }
}


  1. Een MySQL-database leegmaken

  2. 3 manieren om alle opgeslagen procedures in een PostgreSQL-database op te sommen

  3. Is er een PostgreSQL-equivalent van SQL Server-profiler?

  4. Problemen oplossen met langlopende query's in MS SQL Server