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

सी # मैसकल कनेक्शन वैध और खुला होना चाहिए

समस्या यह है कि आप अपने कारखाने की संपत्ति से लौटाए गए कनेक्शन को संग्रहीत नहीं करते हैं। लेकिन एक विधि की तरह एक संपत्ति का उपयोग न करें। इसके बजाय इसे इस तरह इस्तेमाल करें:

using (var con = Services.conn)
{
    Services.conn.Open();
    Services.DB_Select("..a short select statement..", con ));
    //Services.conn.Close(); unnecessary with using
}

तो उपयोग में उसी कनेक्शन का उपयोग करें जो संपत्ति से लौटाया गया था (या उपयोग में बेहतर बनाया गया था) और इसे उस विधि में पास करें जो इसका उपयोग करता है। वैसे, किसी संपत्ति का फ़ैक्टरी पद्धति के रूप में उपयोग करना सर्वोत्तम अभ्यास नहीं है।

लेकिन मेरी राय में जहां आप इसका उपयोग करते हैं वहां कनेक्शन बनाना बेहतर है, सबसे अच्छी जगह using में है बयान। और con फेंक दें कूड़ेदान के लिए संपत्ति, यह व्यर्थ है और गंदी त्रुटियों का स्रोत है।

public static void DB_Select(string s, params List<string>[] lists)
{
    try
    {
         using(var conn = new MySqlConnection(Services.ServerConnection))
         {
            conn.Open();
            MySqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = s;
            using( var sqlreader = cmd.ExecuteReader())
            while (sqlreader.Read())
            {
                if (sqlreader[0].ToString().Length > 0)
                {
                    for (int i = 0; i < lists.Count(); i++)
                    {
                        lists[i].Add(sqlreader[i].ToString());
                    }
                }
                else
                {
                    foreach (List<string> save in lists)
                    {
                        save.Add("/");
                    }
                }
            } // unnecessary to close the connection
        }     // or the reader with the using-stetement
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error while selecting data from database!\nDetails: " + ex);
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या mysql टेबल एन्कोडिंग को बदलते समय कोई नकारात्मक प्रभाव पड़ता है?

  2. एसक्यूएल समय के लिए एक स्ट्रिंग कास्ट करें

  3. InnoDB प्रदर्शन में बदलाव

  4. एक साधारण संग्रहीत कार्यविधि का उपयोग करते समय मुझे MySQL त्रुटि #1312 क्यों मिल रही है?

  5. IN और सबक्वेरी के साथ MYSQL अद्यतन