7

a から値を解析し、DataRowそれを別の に割り当てる必要がありますDataRow。入力が有効な場合は、それを に解析するか、出力に値をdouble追加する必要があります。DBNull私は次のコードを使用しています:

public double? GetVolume(object data)
{
    string colValue = data == null ? string.Empty : data.ToString();
    double volume;

    if (!Double.TryParse(colValue.ToString(), out volume))
    {
        return null;
    }
    return volume;
}

public void Assign(DataRow theRowInput,DataRow theRowOutput)
{
    double? volume = GetVolume(theRowInput[0]);

    if(volumne.HasValue)
    theRowOutput[0] = volume.value;
    else
    theRowOutput[0] = DbNull.Value;

    return theRowOutput;
}

それを行うより良い方法はありますか?

4

3 に答える 3

14

どうですか:

    public double? GetVolume(object data)
    {
        double value;
        if (data != null && double.TryParse(data.ToString(), out value))
            return value;
        return null;
    }

    public void Assign(DataRow theRowInput, DataRow theRowOutput)
    {
        theRowOutput[0] = (object)GetVolume(theRowInput[0]) ?? DBNull.Value;
    }
于 2011-02-17T07:11:31.003 に答える
0

次のような単純なものはどうでしょうか。

double dbl;
if (double.TryParse(theRowInput[0] as string, out dbl))
    theRowOutput[0] = dbl;
else
    theRowOutput[0] = DbNull.Value;

編集:このコードは、入力が文字列型であることを前提としています。あなたはそこで100%明確ではありませんでした。別のタイプの場合、上記のコードを少し調整する必要があります。

于 2011-02-17T07:11:07.210 に答える