繁体   English   中英

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

[英]Input string was not in a correct format (Decimal to String)

我试图将小数转换为我过去成功完成的字符串,但是由于某种原因,它决定现在不工作。 我真的无法理解它,我已经在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);
            }
        }

有人可以帮我吗?

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

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

代替

tbxDecimal.ToString() 

你需要

tbxDecimal.Text.ToString() 

最后,您是否设置了断点以找出您要转换的值实际上是什么? 它可能与您预期的不同。

可能是因为字符串使用点而不是逗号来代替,或者相反。

也许tbxDecimal.ToString()== string.Empty 如果字符串为空,则Decimal.Parse将引发异常

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

您为什么认为这是约会时间? 您可以发布实际的字符串吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM