Ако product_price
колоната не е от тип TEXT
в MySQL, Reader.GetString(0)
ще (в зависимост от това как четецът е внедрен от Oracle) ще хвърли изключение или ще върне празен низ. Мисля, че последното се случва.
Извличане на стойността чрез DataReader
изисква да знаете типа данни. Не можете просто да прочетете низ за всеки тип поле. Например, ако полето в базата данни е цяло число, трябва да използвате GetInt32(...)
. Ако е DateTime
използвайте GetDateTime(...)
. Използване на GetString
на DateTime
полето няма да работи.
РЕДАКТИРАНЕ
Ето как бих написал тази заявка:
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();
}
}
}