Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

C# Koneksi Mysql harus valid dan terbuka

Masalahnya adalah Anda tidak menyimpan koneksi yang dikembalikan dari properti pabrik Anda. Tapi jangan gunakan properti seperti metode. Alih-alih menggunakannya dengan cara ini:

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

Jadi gunakan koneksi yang sama dalam penggunaan yang dikembalikan dari properti (atau lebih baik dibuat dalam penggunaan) dan berikan ke metode yang menggunakannya. Omong-omong, menggunakan properti sebagai metode pabrik bukanlah praktik terbaik.

Tapi menurut saya jauh lebih baik untuk membuat koneksi di mana Anda menggunakannya, tempat terbaik adalah di using penyataan. Dan lempar con properti ke tong sampah, itu tidak ada gunanya dan sumber kesalahan buruk.

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. Kapan disarankan menggunakan MySQL BLOB?

  2. WEEKDAY() Contoh – MySQL

  3. Adakah yang punya cukup bukti bahwa CHAR lebih cepat dari VARCHAR?

  4. Mengirim hasil Email HTML dalam Email yang menampilkan sumber HTML (Kelas Email Codeigniter)

  5. mysqldb pada python 2.6+ (win32)