Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySql Wybierz Gdzie i C#

Jeśli product_price kolumna nie jest typu TEXT w MySQL, Reader.GetString(0) wyrzuci (w zależności od tego, w jaki sposób czytnik został zaimplementowany przez Oracle) wyjątek lub zwróci pusty ciąg. Myślę, że dzieje się to drugie.

Pobieranie wartości przez DataReader wymaga znajomości typu danych. Nie możesz po prostu odczytać ciągu dla każdego typu pola. Na przykład, jeśli pole w bazie danych jest liczbą całkowitą, musisz użyć GetInt32(...) . Jeśli jest to DateTime użyj GetDateTime(...) . Używanie GetString w DateTime pole nie działa.

EDYTUJ
Tak napisałbym to zapytanie:

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. Java Spring REST API obsługuje wiele opcjonalnych parametrów

  2. SQL UPDATE z podzapytaniem, które odwołuje się do tej samej tabeli w MySQL

  3. MySQL InnoDB - Zdezorientowany transakcjami

  4. MySQL Wybierz gdzie w wielu do wielu

  5. Tworzenie bazy danych za pomocą MySQL Workbench z istniejącego schematu/modelu