Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lỗi với OracleDataReader. Lỗi:Hoạt động không hợp lệ. Kết nối đã bị đóng

Bạn nên mở kết nối và bạn cũng nên sử dụng tham số sql. Hy vọng rằng đây là cú pháp oracle chính xác vì tôi không thể kiểm tra nó:

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

Lưu ý rằng tôi đã sử dụng using -bảng cáo để đảm bảo rằng tất cả các tài nguyên không được quản lý sẽ được xử lý càng sớm càng tốt. Nó cũng đóng các kết nối (ngay cả khi bị lỗi).

Chỉnh sửa :Vì bạn chỉ đang chọn một giá trị duy nhất nên tôi khuyên bạn nên sử dụng 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tuyên bố xóa Oracle:có bao nhiêu hàng đã bị xóa bằng cách xóa theo tầng

  2. Toán tử tham gia Oracle

  3. Java:ResultSet getString () khác nhau giữa các môi trường

  4. Giới thiệu Trình điều khiển Easysoft Oracle® vào Môi trường SOA của bạn

  5. làm thế nào để giải quyết Bị trừ một từ cuộc gọi đã đọc trong oracle 11g jdbc 7/14 jdk 1.7?