System.FormatException控制台应用程序C#中的输入字符串格式错误?

时间:2018-03-27 08:47:46

标签: c# datatable type-conversion console-application tryparse

我收到错误当行[colname] =" NULL"和" ABC" 有什么方法可以避免它!!
我甚至尝试尝试解析但我收到错误无法将对象转换为字符串 row[colname](评论代码) error cannot convert object to string in 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"]));
                }

2 个答案:

答案 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 row[colname]加入<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>