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