Si el product_price
la columna no es del tipo TEXT
en MySQL, el Reader.GetString(0)
(dependiendo de cómo Oracle implementó el lector) arrojará una excepción o devolverá una cadena vacía. Creo que esto último está sucediendo.
Recuperando el valor a través de un DataReader
requiere que conozca el tipo de datos. No puede simplemente leer una cadena para cada tipo de campo. Por ejemplo, si el campo en la base de datos es un número entero, debe usar GetInt32(...)
. Si es un DateTime
usa GetDateTime(...)
. Usando GetString
en un DateTime
el campo no funcionará.
EDITAR
Así es como escribiría esta consulta:
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();
}
}
}