[英]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.