Se o
product_price
a coluna não é do tipo TEXT
no MySQL, o Reader.GetString(0)
(dependendo de como o leitor foi implementado pelo Oracle) lançará uma exceção ou retornará uma string vazia. Eu acho que o último está acontecendo. Recuperando o valor por meio de um
DataReader
requer que você conheça o tipo de dados. Você não pode simplesmente ler uma string para cada tipo de campo. Por exemplo, se o campo no banco de dados for um Integer, você precisará usar GetInt32(...)
. Se for um DateTime
use GetDateTime(...)
. Usando GetString
em um DateTime
campo não funcionará. EDITAR
É assim que eu escreveria 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();
}
}
}