अगर product_price
कॉलम TEXT
. प्रकार का नहीं है MySQL में, Reader.GetString(0)
विल (ओरेकल द्वारा पाठक को कैसे कार्यान्वित किया गया था, इस पर निर्भर करता है) एक अपवाद फेंक दें या एक खाली स्ट्रिंग लौटाएं। मुझे लगता है कि बाद वाला हो रहा है।
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();
}
}
}