«Указанное приведение недействительно» для DataTable.Compute? - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть этот код здесь:

decimal dec = (decimal)MyDataTable.Compute("Min(Rooms)", string.Empty);

Это всегда говорит мне Указанное приведение неверно .Как я могу проверить, будет ли вычисление выполнено успешно во время выполнения?

Спасибо:)

Ответы [ 2 ]

5 голосов
/ 07 декабря 2011

Попробуйте это

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

если result равно true, это означает, что анализ был успешным

2 голосов
/ 07 декабря 2011

Попробуйте использовать Decimal.TryParse() Посмотрите, поможет ли это вам. Вот MSDN Это должно работать:

        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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...