Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySql Selecione Onde e C#


Se o product_price a coluna não é do tipo TEXT no MySQL, o Reader.GetString(0) (dependendo de como o leitor foi implementado pelo Oracle) lançará uma exceção ou retornará uma string vazia. Eu acho que o último está acontecendo.

Recuperando o valor por meio de um DataReader requer que você conheça o tipo de dados. Você não pode simplesmente ler uma string para cada tipo de campo. Por exemplo, se o campo no banco de dados for um Integer, você precisará usar GetInt32(...) . Se for um DateTime use GetDateTime(...) . Usando GetString em um DateTime campo não funcionará.

EDITAR
É assim que eu escreveria esta consulta:
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();
        }
    }
}