我正在尝试将小数转换为我过去曾做过的字符串,但由于某种原因,它决定现在不起作用。我真的无法理解它,我已经在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);
}
}
有人可以帮助我吗?
答案 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)
为什么你认为这是约会时间?你能发贴实际的字符串吗?
注意小数点分隔符 - '。'与','