Входная строка была не в правильном формате (десятичная строка) - PullRequest
0 голосов
/ 20 января 2011

я пытаюсь преобразовать десятичную строку в строку, которую я успешно делал в прошлом, но по какой-то причине она решила не работать сейчас. Я действительно не могу разобраться с этим, я установил десятичное значение в SQL Management Studio и использовал linq, чтобы побудить его пройти, но по какой-то странной причине, неизвестной человечеству, он думает, что просит дату / время.

Код:

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                tblTest t = new tblTest();

                t.tDecimal = Convert.ToDecimal(tbxDecimal.ToString());

                t.Add(t);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex.Message);
            }
        }

Может ли кто-нибудь помочь мне здесь?

Ответы [ 5 ]

7 голосов
/ 20 января 2011

Во-первых, вы всегда должны использовать System.Decimal.TryParse () вместо Convert.ToDecimal ()

Во-вторых, если вы используете какую-то форму венгерской нотации, а tbx означает «текстовое поле» в вашей нотации, вы пытаетесь преобразовать текстовое поле, а не текст в текстовом поле.

вместо

tbxDecimal.ToString() 

тебе нужно

tbxDecimal.Text.ToString() 

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

1 голос
/ 20 января 2011

Возможно, это потому, что в строке вместо запятой используется точка, или наоборот.

0 голосов
/ 20 января 2011

Почему вы думаете, что это время? Не могли бы вы опубликовать фактическую строку?

Обратите внимание на десятичный разделитель - '.' против ','

0 голосов
/ 20 января 2011

Чтобы расширить ответ Фредрика: есть ли несоответствие CultureInfo / Localization?

0 голосов
/ 20 января 2011

Возможно tbxDecimal.ToString()== string.Empty?Decimal.Parse сгенерирует исключение, если строка пуста

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