[英]Input string was not in a correct format. C# SQL
我将SQL值放在<td>
并且其下面的这一行导致格式错误,我不知道解析是否不正确或缺少某些内容。 请帮忙
litAccordionFooter.Text += "<td style='width: 12.2%;font-weight: bold;'>"
+ string.Format("{0:C}", (((ds.Tables[1].Rows[0]["TOTAL_AMT"]))
== DBNull.Value ? 1
: decimal.Parse((ds.Tables[1].Rows[0]["TOTAL_AMT"]).ToString()))
/ ((int.Parse((ds.Tables[1].Rows[0]["TOTAL_QTY"]).ToString())) == 0
|| ds.Tables[1].Rows[0]["TOTAL_QTY"] == DBNull.Value ? 1
: (int.Parse((ds.Tables[1].Rows[0]["TOTAL_QTY"]).ToString())))) + "</td>";
正如@JoãoKleberson所说,您应该验证它们不是null
还是empty
,并且它们实际上具有int
和decimal
表示形式
int total_Amt = default(int);
decimal total_Qty = default(decimal);
if (decimal.TryParse(ds.Tables[1].Rows[0]["TOTAL_AMT"].ToString(), out total_Qty) &&
int.TryParse(ds.Tables[1].Rows[0]["TOTAL_QTY"].ToString(), out total_Amt))
{
var myString = "<td style='width: 12.2%;font-weight:bold;'>" +
string.Format("{0:C}", total_Amt / total_Qty == 0 ? 1 : total_Qty) + "</td>";
}
else
{
// The TOTAL_AMT and/or TOTAL_QTY values are not valid to convert them,
// verify they are not null and that they have the correct format
}
这样,您可以安全地尝试将值转换为所需的类型,如果无法转换,则流程将转到else
子句
确保此语句:
(ds.Tables [1]。行[0] [“ TOTAL_AMT”])
(ds.Tables [1]。行[0] [“ TOTAL_QTY”])
不为null或为空
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.