我收到错误当行[colname] =" NULL"和" ABC" 有什么方法可以避免它!!
我甚至尝试尝试解析但我收到错误无法将对象转换为字符串 row[colname]
(评论代码)
未处理的类型' System.FormatException'发生在mscorlib.dll
foreach (DataRow row in csvData.Rows)
{
//var Result = double.TryParse(row[colname], out myDec);
if (Convert.ToDouble(row[colname]) >= med1 && Convert.ToDouble(row[colname]) <= med2)
{
al.Add(Convert.ToDouble(row[colname]));
//Console.WriteLine("value greater than 20 % median= {0}", Convert.ToDouble(row["Data Value"]));
}
答案 0 :(得分:1)
发生问题是因为您正在尝试转换&#34; NULL&#34;和&#34; ABC&#34;到双重类型,这根本不可能。试试这个:
double myDec;
foreach (DataRow row in csvData.Rows)
{
double.TryParse(row[colname]?.ToString(), out myDec)
if (myDec >= med1 && myDec <= med2)
{
al.Add(myDec);
}
使用row[colname]?.ToString()
将row[colname]
从对象转换为字符串。 double.TryParse(String, Double)
要求第一个参数是字符串而不是对象。
答案 1 :(得分:0)
一个简单的问题:为什么行var Result = double.TryParse(row[colname], out myDec);
被评论?这是正确的方法。您只是因为Convert.To()
无法转换row[colname]
中的值而获得该例外,当double.TryParse()
进入该角色时,您可以检查转化状态的返回值并使用out变量中的值;代码如下:
foreach (DataRow row in csvData.Rows)
{
double myDec;
if (row[colname] != null && double.TryParse(row[colname].Tostring(), out myDec))
{
if (myDec >= med1 && myDec <= med2)
{
al.Add(myDec);
}
}
}
请注意:如果row[colname] !== DbNull.Value
中有DbNull
<div class="col-md-6">
<div class="well dash-box">
<h2><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Stel jezelf voor</h2>
<h5><a href="https://tom.lbmedia.nl/onderwerp"> Laat wetn wie jij en je business zijn</a></h5>
</div>
</div>
<div class="col-md-6">
<div class="well dash-box">
<h2><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> 12</h2>
<?php
$toppics = $app->get_topics();
$i = 0;
$j = 0;
foreach ($toppics as $topic) {
if($j >= 1) continue;
echo '<a href="#section' . $i++ . '">' . $topic['onderwerp'] . '</a>';
$j++;
}
?>
</div>
</div>