sql >> Databáze >  >> RDS >> Mysql

MySql Select Where a C#

Pokud product_price sloupec není typu TEXT v MySQL, Reader.GetString(0) bude (v závislosti na tom, jak byla čtečka implementována Oracle) vyvolá výjimku nebo vrátí prázdný řetězec. Myslím, že k tomu druhému dochází.

Načtení hodnoty pomocí DataReader vyžaduje, abyste znali datový typ. Nemůžete jednoduše přečíst řetězec pro každý typ pole. Pokud je například pole v databázi celé číslo, musíte použít GetInt32(...) . Pokud je to DateTime použijte GetDateTime(...) . Pomocí GetString v DateTime pole nebude fungovat.

UPRAVIT
Tento dotaz bych napsal takto:

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. Nechat mysql_fetch_assoc automaticky detekovat návratové datové typy?

  2. Jak rozšířím hodnoty oddělené čárkami do samostatných řádků pomocí SQL Server 2005?

  3. Odstraňování HTML tagů v PostgreSQL

  4. Java Hibernate Zkontrolujte, zda je replikace MySQL synchronizována