Jika product_price
kolom bukan tipe TEXT
di MySQL, Reader.GetString(0)
akan (bergantung pada bagaimana pembaca diimplementasikan oleh Oracle) melempar Pengecualian atau mengembalikan string kosong. Saya akan berpikir yang terakhir terjadi.
Mengambil nilai melalui DataReader
mengharuskan Anda untuk mengetahui tipe data. Anda tidak bisa begitu saja membaca string untuk setiap jenis bidang. Misalnya, jika bidang dalam database adalah bilangan bulat, Anda perlu menggunakan GetInt32(...)
. Jika ini adalah DateTime
gunakan GetDateTime(...)
. Menggunakan GetString
pada DateTime
kolom tidak akan berfungsi.
EDIT
Inilah cara saya menulis kueri ini:
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();
}
}
}