आपको कनेक्शन खोलना चाहिए और आपको एसक्यूएल-पैरामीटर का भी उपयोग करना चाहिए। उम्मीद है कि यह सही ऑरैकल सिंटैक्स है क्योंकि मैं इसका परीक्षण नहीं कर सकता:
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();
}
}
}
}
ध्यान दें कि मैंने using
. का उपयोग किया है -यह सुनिश्चित करने के लिए कि सभी अप्रबंधित संसाधनों का जल्द से जल्द निपटान किया जाए। यह कनेक्शन भी बंद कर देता है (त्रुटि पर भी)।
संपादित करें :चूंकि आप केवल एक मान का चयन कर रहे हैं, मेरा सुझाव है कि 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();
}
}