sql >> Database teknologi >  >> RDS >> Mysql

MySql Vælg Hvor og C#

Hvis product_price kolonne er ikke af typen TEXT i MySQL, Reader.GetString(0) vil (afhængigt af hvordan læseren blev implementeret af Oracle) smide en undtagelse eller returnere en tom streng. Jeg vil tro, at det sidste sker.

Hentning af værdien gennem en DataReader kræver, at du kender datatypen. Du kan ikke bare læse en streng for hver type felt. For eksempel, hvis feltet i databasen er et heltal, skal du bruge GetInt32(...) . Hvis det er en DateTime brug GetDateTime(...) . Brug af GetString på en DateTime feltet virker ikke.

REDIGER
Sådan ville jeg skrive denne forespørgsel:

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. Sådan sender du en POST-anmodning med formulardata og parametre i PL/SQL

  2. Datobetingelser ved hjælp af søgelogik

  3. Hvordan finder man ud af, om en upsert var en opdatering med PostgreSQL 9.5+ UPSERT?

  4. Trækker data fra MySQL ind i json-array