繁体   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