sql >> Databasteknik >  >> RDS >> Mysql

MySql Välj Where och C#

Om product_price kolumnen är inte av typen TEXT i MySQL, Reader.GetString(0) kommer (beroende på hur läsaren implementerades av Oracle) att kasta ett undantag eller returnera en tom sträng. Jag skulle tro att det senare händer.

Hämtar värdet genom en DataReader kräver att du känner till datatypen. Du kan inte bara läsa en sträng för varje typ av fält. Till exempel, om fältet i databasen är ett heltal måste du använda GetInt32(...) . Om det är en DateTime använd GetDateTime(...) . Använder GetString på en DateTime fältet fungerar inte.

REDIGERA
Så här skulle jag skriva den här frågan:

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


  1. JQuery Datatable - Dela en cell i flera kolumner för läsbarhet?

  2. vilken ip AWS lambdafunktion använder?

  3. Villkorad VID DUBLIKAT UPPDATERING AV NYCKEL (Uppdatera endast om ett visst villkor är sant)

  4. UNION-fråga med codeigniters aktiva postmönster