sql >> Databasteknik >  >> RDS >> Oracle

Fel med OracleDataReader. Fel:Ogiltig operation. Anslutningen är stängd

Du bör öppna anslutningen och du bör också använda sql-parametrar. Förhoppningsvis är detta den korrekta orakelsyntaxen eftersom jag inte kan testa den:

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();
            }
        }
    }
}

Observera att jag har använt using -uttalande för att säkerställa att alla ohanterade resurser omhändertas så snart som möjligt. Det stänger också anslutningar (även vid fel).

Redigera :Eftersom du bara väljer ett enda värde föreslår jag att du använder ExecuteScalar :

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. Vista fokusproblem när du anropar Microsoft Word stavningskontroll från Oracle Forms

  2. Java-program och mySQL-anslutningsproblem:Ingen lämplig drivrutin hittades

  3. Fel vid laddning av MySQLdb-modul:libmysqlclient.so.20:kan inte öppna fil med delat objekt:Ingen sådan fil eller katalog

  4. Döljer vanlig textlösenord med kommandoraden i sqlplus