sql >> Database teknologi >  >> RDS >> Oracle

Fejl med OracleDataReader. Fejl:Ugyldig handling. Forbindelsen er lukket

Du bør åbne forbindelsen, og du bør også bruge sql-parametre. Forhåbentlig er dette den korrekte orakelsyntaks, fordi jeg ikke kan teste 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();
            }
        }
    }
}

Bemærk, at jeg har brugt using -erklæring for at sikre, at alle ikke-administrerede ressourcer bortskaffes så hurtigt som muligt. Det lukker også forbindelser (selv ved fejl).

Rediger :Da du kun vælger en enkelt værdi, foreslår jeg at bruge 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. Få adgang til mysql, der kører på localhost fra minikube

  2. Oplev typer på PL/SQL-pakkeniveau ved hjælp af Oracle-ordbogsvisninger

  3. MySQL:Sådan aktiverer du indlæsning af data lokalt på både klient- og serversiden

  4. MYSQL INSERT SELECT-problem