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

MySql Chọn Vị trí và C #

Nếu product_price cột không thuộc loại TEXT trong MySQL, Reader.GetString(0) sẽ (tùy thuộc vào cách trình đọc được Oracle triển khai) ném một Ngoại lệ hoặc trả về một chuỗi trống. Tôi nghĩ điều thứ hai đang xảy ra.

Truy xuất giá trị thông qua DataReader yêu cầu bạn biết kiểu dữ liệu. Bạn không thể chỉ đọc một chuỗi cho mọi loại trường. Ví dụ:nếu trường trong cơ sở dữ liệu là Số nguyên, bạn cần sử dụng GetInt32(...) . Nếu đó là DateTime sử dụng GetDateTime(...) . Sử dụng GetString trên DateTime trường sẽ không hoạt động.

CHỈNH SỬA
Đây là cách tôi viết truy vấn này:

using (MySqlConnection connection = new MySqlConnection(...))
{
    connection.Open();
    using (MySqlCommand cmd = new MySqlCommand("select product_price from product where product_name='@pname';", connection))
    {
        cmd.Parameters.AddWithValue("@pname", x);
        using (MySqlDataReader reader = cmd.ExecuteReader())
        {
            StringBuilder sb = new StringBuilder();
            while (reader.Read())
                sb.Append(reader.GetInt32(0).ToString());

            Price_label.Content = sb.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. Chuyển đổi giây thành ngày, giờ, phút, giây (MySQL)

  2. CodeIgniter Chọn truy vấn

  3. JPA EclipseLink DatabaseException:'table foo.SEQUENCE không tồn tại'

  4. Làm cách nào để tạo cơ sở dữ liệu MySQL từ tệp kết xuất trong tập lệnh Mong đợi / TCL?

  5. Node.js MySQL cần kết nối liên tục