输入字符串格式不正确(十进制到字符串)

时间:2011-01-19 22:10:50

标签: c# .net linq-to-entities decimal

我正在尝试将小数转换为我过去曾做过的字符串,但由于某种原因,它决定现在不起作用。我真的无法理解它,我已经在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 个答案:

答案 0 :(得分:7)

首先,您应该始终使用System.Decimal.TryParse()而不是Convert.ToDecimal()

其次,假设您使用的是某种形式的匈牙利符号,并且tbx在您的符号中表示“文本框”,则您尝试转换文本框,而不是文本框中的文本。

而不是

tbxDecimal.ToString() 

你需要

tbxDecimal.Text.ToString() 

最后,您是否设置了一个断点来找出您尝试转换的值究竟是什么?它可能与您期望的不同。

答案 1 :(得分:1)

也许是因为字符串使用点而不是昏迷,反之亦然。

答案 2 :(得分:0)

也许tbxDecimal.ToString()== string.Empty?如果字符串为空,Decimal.Parse将抛出异常

答案 3 :(得分:0)

扩展Fredrik的答案:是否存在CultureInfo / Localization不匹配?

答案 4 :(得分:0)

为什么你认为这是约会时间?你能发贴实际的字符串吗?

注意小数点分隔符 - '。'与','