Se il product_price
la colonna non è di tipo TEXT
in MySQL, il Reader.GetString(0)
(a seconda di come il lettore è stato implementato da Oracle) genererà un'eccezione o restituirà una stringa vuota. Penso che quest'ultimo stia accadendo.
Recupero del valore tramite un DataReader
richiede di conoscere il tipo di dati. Non puoi semplicemente leggere una stringa per ogni tipo di campo. Ad esempio, se il campo nel database è un intero, è necessario utilizzare GetInt32(...)
. Se è un DateTime
usa GetDateTime(...)
. Usando GetString
su un DateTime
il campo non funzionerà.
MODIFICA
Ecco come scriverei questa query:
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();
}
}
}