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

C# 输入字符串的格式不正确(十进制到字符串),c#,.net,linq-to-entities,decimal,C#,.net,Linq To Entities,Decimal,我试图将十进制数转换成字符串,这在过去我做得很成功,但由于某种原因,现在它决定不工作了。我真的无法控制它,我在SQL Management Studio中将它设置为十进制,并使用linq to entites传递它,但出于人类未知的奇怪原因,它认为我需要一个日期时间 代码: protected void btnSubmit_Click(object sender, EventArgs e) { try {

我试图将十进制数转换成字符串,这在过去我做得很成功,但由于某种原因,现在它决定不工作了。我真的无法控制它,我在SQL Management Studio中将它设置为十进制,并使用linq to entites传递它,但出于人类未知的奇怪原因,它认为我需要一个日期时间

代码:

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);
            }
        }

有人能帮我吗?

可能是因为字符串使用了点而不是昏迷,或者是相反。

可能是
tbxDecimal.ToString()==string.Empty
?如果字符串为空,Decimal.Parse将引发异常。首先,您应该始终使用而不是Convert.ToDecimal()

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

而不是

tbxDecimal.ToString() 
你需要

tbxDecimal.Text.ToString() 

最后,你有没有设置一个断点来找出你想要转换的值到底是什么?这可能与你预期的不同

进一步阐述Fredrik的答案:是否存在文化信息/本地化不匹配?

为什么您认为这是datetime?你能把实际的字符串贴出来吗


注意小数点分隔符-“.”vs.,“

tbxDecimal.ToString()的值是多少??是的,我很傻没有看到那个。。。ThanksI出现这个错误是因为我的十进制数在负号和数字之间显示了一个空格,比如-3.14而不是-3.14。