0

CSV ファイルをインポートしてから、Datatable にアップロードする必要があります。次に、列が要件を満たしていることを確認し、エンド ユーザーが正しい形式でインポートすることを確認する必要があります。CSV ファイルには、item、price、measure の 3 つの列が必要です。

列名を文字列と比較しようとするとエラーが発生します。ここではコード スニペットです。

private bool verifyColumn(DataTable dt)
{
    /* Column 
     * 1) items
     * 2) price
     * 3) measure
    */

    foreach (DataColumn col in dt.Columns)
    {  
        if (col.ColumnName.ToString() == "price")
        {
            continue;
        }
        else if (col.ColumnName.ToString() == "item")
        {
            continue;
        }
        else if (col.ColumnName.ToString() == "measure")
        {
            continue;
        }
        else
        {
            return false;
        }                           
    }

    return true;
}

デバッグ モードの場合、最初のループの for は show 'item' ですが、if ステートメントでキャッチできません。どうすればこの問題を解決できますか?

A Portable and Efficient Generic Parser for Flat Filesを使用して CSV ファイルをデータテーブルにインポートするコード。

GenericParserAdapter paste = new GenericParserAdapter(fileName);                    
paste.FirstRowHasHeader = true;
paste.ColumnDelimiter = ';';

DataTable dt dt = paste.GetDataTable();
if (dt.Columns.Count != 3)
{ 
    MessageBox.Show(errorMessage, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
    dt.Clear();
    return;
}

// Here to do verify columт
4

1 に答える 1

0

最初の列は「アイテム」だったように見えますが、「アイテム」でフィルタリングします。

P/S: col.ColumnName.ToString() 値を保持する変数を作成する必要があります。(ColumnName が文字列ではない場合、これは少し奇妙です)

于 2013-09-25T02:56:59.387 に答える