Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối C # Mysql phải hợp lệ và mở

Vấn đề là bạn không lưu trữ kết nối được trả về từ thuộc tính nhà máy của bạn. Nhưng đừng sử dụng một thuộc tính như một phương thức. Thay vào đó, hãy sử dụng nó theo cách này:

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

Vì vậy, hãy sử dụng cùng một kết nối trong việc sử dụng được trả về từ thuộc tính (hoặc tốt hơn là được tạo trong việc sử dụng) và chuyển nó cho phương thức sử dụng nó. Nhân tiện, sử dụng thuộc tính làm phương pháp nhà máy không phải là phương pháp hay nhất.

Nhưng Theo ý kiến ​​của tôi, tốt hơn hết là bạn nên tạo kết nối ở nơi bạn sử dụng nó, nơi tốt nhất là ở using bản tường trình. Và ném con thuộc tính của thùng rác, nó là vô nghĩa và là nguồn gây ra các lỗi khó chịu.

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. Sử dụng backquote / backticks cho các truy vấn mysql

  2. Ghép kênh Ruby / MySQL Lỗi:gói không hợp lệ:số thứ tự không khớp

  3. Sửa đổi cột Vs thay đổi cột

  4. Làm thế nào để THAM GIA bảng danh mục cho cha mẹ trong truy vấn SQL?

  5. tomcat7:Không thể tải lớp trình điều khiển JDBC [com.mysql.jdbc.Driver]