1

私は通貨換算プロジェクトに取り組んでいます。現在、データベースから換算レートと説明を取得するための小さなスクリプトを作成しましたが、変数 (Rate) をデータベースから取得する方法が見つからないようです。データリーダーが作成した文字列。

コード スニペットは次のとおりです。

            if (reader.HasRows)
                //The reader will only read the rows if the ISO code matches the options avalible within the DB
            {
                Console.WriteLine("Result Found!");
                while (reader.Read())
                {
                    Console.WriteLine("Rate: {0}\t Conversion Rate: {1}",
                                      reader[0], reader[1]);
                }
                reader.Close();
            }

今、変換したりアダプターに押し込んだりすることなく、10 進数である Rate 変数が必要です (私は C# が初めてです)。

tl;dr "Rate: {0}" からの出力のみが必要なので、それを使用して通貨を変換できます。

何か案は?

4

2 に答える 2

1

やってみました

reader.ReadField<type>("fieldname") ?

編集:うわー、これが SqlDataReader の一部ではないことを忘れていたなんて信じられません:p、実装を見ていました...これのコード:

拡大:

public static T ReadField<T>(this IDataReader reader, String fieldname)
{
    return DB.ReaderField<T>(reader, fieldname);
}

DB.ReaderField:

public static T ReaderField<T>(IDataReader reader, String fieldname)
{
    try
    {
        int idx = reader.GetOrdinal(fieldname);
        if (reader.IsDBNull(idx))
        {
            return (T)default(T);
        }
        else
        {
            object o = reader.GetValue(idx);

            try
            {
                return (T)Convert.ChangeType(o, typeof(T));
            }
            catch
            {
                return (T)default(T);
            }
        }
    }
    catch { }

    return (T)default(T);
}

混乱してすみません:)

于 2013-06-12T14:27:09.130 に答える