Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

OracleDataReader के साथ त्रुटि। त्रुटि:अवैध संचालन। कनेक्शन बंद है

आपको कनेक्शन खोलना चाहिए और आपको एसक्यूएल-पैरामीटर का भी उपयोग करना चाहिए। उम्मीद है कि यह सही ऑरैकल सिंटैक्स है क्योंकि मैं इसका परीक्षण नहीं कर सकता:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लूप के लिए उपयोग करके .csv फ़ाइल में स्पूल करें

  2. ओरेकल में एक डीबी कॉलम से टेक्स्ट में पूर्णांक मान कनवर्ट करना

  3. ORA-03113:ASP.Net ऐप में लंबी निष्क्रियता के बाद संचार चैनल पर फ़ाइल का अंत

  4. मैं एक उपयोगकर्ता को प्राप्त सभी अनुदानों को कैसे सूचीबद्ध कर सकता हूं?

  5. कमांड नहीं मिला- बैश:sqlplus: