sql >> データベース >  >> RDS >> Mysql

MySql Select WhereとC#

    product_priceの場合 列のタイプがTEXTではありません MySQLでは、Reader.GetString(0) (リーダーがOracleによってどのように実装されたかに応じて)例外をスローするか、空の文字列を返します。後者が起こっていると思います。

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


    1. データをHerokuにプッシュするときのエラー:タイムゾーンの変位が範囲外です

    2. ニーズに合わせたSQLServer監視ツールの選択

    3. オラクルで大文字と小文字が区別される理由

    4. 節が機能する場所はtinyintでは機能しません