0

以下のコードでは、最初の行をヘッダーとして追加して、大きな CSV ファイルをデータテーブルにインポートしようとしています。インポート中に、特定のテキスト文字列が含まれている場合、特定のヘッダーをスキップしています。ヘッダーが欠落している場合、行の値をスキップしたい.助けてください. これが私のコードです。

 private static DataTable GetDataTabletFromCSVFile(string csv_file_path)
    {
        DataTable csvData = new DataTable();

        try
        {
            using (TextFieldParser csvReader = new TextFieldParser(csv_file_path))
            {
                csvReader.SetDelimiters(new string[] { "," });
                csvReader.HasFieldsEnclosedInQuotes = true;
                string[] colFields = csvReader.ReadFields();
                foreach (string column in colFields)
                {
                    if (column.Contains("code"))
                    {
//here i am skipping a column if it contains the string
                        continue;
                    }

                    else if (column.Contains("Q"))
                    {
                        continue;
                    }

                    else if (column.Contains("M"))
                    {
                        continue;
                    }

                    DataColumn datecolumn = new DataColumn(column);
                    datecolumn.AllowDBNull = true;
                    csvData.Columns.Add(datecolumn);
                }
                while (!csvReader.EndOfData)
                {
                    string[] fieldData = csvReader.ReadFields();
                    //Making empty value as null
                    for (int i = 0; i < fieldData.Length; i++)
                    {
                        if (fieldData[i] == "")
                        {
                            fieldData[i] = null;
                        }
                    }
                    csvData.Rows.Add(fieldData);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message.ToString());
        }
        return csvData;
    }
4

2 に答える 2