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();
}
}
}