Als de product_price
kolom is niet van het type TEXT
in MySQL, de Reader.GetString(0)
zal (afhankelijk van hoe de reader door Oracle is geïmplementeerd) een Exception genereren of een lege string retourneren. Ik zou denken dat het laatste gebeurt.
De waarde ophalen via een DataReader
vereist dat u het gegevenstype kent. Je kunt niet zomaar voor elk type veld een string uitlezen. Als het veld in de database bijvoorbeeld een geheel getal is, moet u GetInt32(...)
gebruiken . Als het een DateTime
. is gebruik GetDateTime(...)
. GetString
gebruiken op een DateTime
veld werkt niet.
BEWERKEN
Dit is hoe ik deze vraag zou schrijven:
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();
}
}
}