C# &引用;指定的强制转换无效";对于DataTable.Compute?

C# &引用;指定的强制转换无效";对于DataTable.Compute?,c#,casting,datatable,C#,Casting,Datatable,我这里有这个代码: decimal dec = (decimal)MyDataTable.Compute("Min(Rooms)", string.Empty); 它总是告诉我指定的强制转换无效。我如何在运行时检查计算是否成功 谢谢:)尝试使用Decimal.TryParse()看看这是否对您有帮助。 这应该起作用: var s = "123.34"; decimal d; bool isDec = Decimal.TryParse(s, ou

我这里有这个代码:

decimal dec = (decimal)MyDataTable.Compute("Min(Rooms)", string.Empty);
它总是告诉我指定的强制转换无效。我如何在运行时检查计算是否成功


谢谢:)

尝试使用
Decimal.TryParse()
看看这是否对您有帮助。 这应该起作用:

        var s = "123.34";
        decimal d;

        bool isDec = Decimal.TryParse(s, out d);

        if (isDec)
            Console.WriteLine("It was a decimal: " + d);
        else
            Console.WriteLine("Not a decimal!");

        Console.WriteLine(isDec);
        Console.ReadLine();

需要两个参数的原因是,第一个参数是以字符串格式表示的十进制数。如果TryParse成功,结果将存储在
d
(在上面的示例中)。在上面的示例中,
isDec
打印
true

尝试使用
Decimal.TryParse()
查看这是否有帮助。 这应该起作用:

        var s = "123.34";
        decimal d;

        bool isDec = Decimal.TryParse(s, out d);

        if (isDec)
            Console.WriteLine("It was a decimal: " + d);
        else
            Console.WriteLine("Not a decimal!");

        Console.WriteLine(isDec);
        Console.ReadLine();
需要两个参数的原因是,第一个参数是以字符串格式表示的十进制数。如果TryParse成功,结果将存储在
d
(在上面的示例中)。在上面的示例中,
isDec
打印
true

试试这个

object dec = MyDataTable.Compute("Min(Rooms)", string.Empty);
decimal d;
bool result = Decimal.TryParse(dec.ToString(), out d);
如果
结果
则表示解析成功

请尝试此操作

object dec = MyDataTable.Compute("Min(Rooms)", string.Empty);
decimal d;
bool result = Decimal.TryParse(dec.ToString(), out d);

如果
result
true
则表示解析成功

Decimal。TryParse(dec)至少需要2个参数?第二个参数是out(put)参数,因此解析结果有位置(因为方法的实际返回值是布尔成功/失败指示器)@grady-看看我关于为什么需要2的答案。你可以试试这个
Decimal.TryParse(MyDataTable.Compute(“Min(Rooms)”,string.Empty)。ToString(),out d)是的,我同意有时会发生这种情况,但我想重要的是哪个答案对readerDecimal更有意义。TryParse(dec)至少需要2个参数?第二个参数是out(put)参数,因此解析结果有一个位置(因为方法的实际返回值是布尔成功/失败指示器)@grady-看看我关于为什么需要2的答案。你可以试试这个
Decimal.TryParse(MyDataTable.Compute(“Min(Rooms)”,string.Empty)。ToString(),out d)