簡體   English   中英

輸入的字符串格式不正確。 C#SQL

[英]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 ,並且它們實際上具有intdecimal表示形式

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM