Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将CSV数据提取到特定单词后的datagridview中_C#_Asp.net_Csv_Datagridview - Fatal编程技术网

C# 将CSV数据提取到特定单词后的datagridview中

C# 将CSV数据提取到特定单词后的datagridview中,c#,asp.net,csv,datagridview,C#,Asp.net,Csv,Datagridview,所以我有一个csv文件,我想将其数据提取到datagridview中,然后将其保存到数据库中。我只希望它保存Tango N$10优惠券优惠后显示的数据,10请参阅CSV文件摘录,以了解我使用的是windows应用程序C。以下是我迄今为止尝试的内容 try { var filePath = Path.GetFullPath(openAirtimeFile.FileName); foreach (var li

所以我有一个csv文件,我想将其数据提取到datagridview中,然后将其保存到数据库中。我只希望它保存Tango N$10优惠券优惠后显示的数据,10请参阅CSV文件摘录,以了解我使用的是windows应用程序C。以下是我迄今为止尝试的内容

try
            {
                var filePath = Path.GetFullPath(openAirtimeFile.FileName);


                foreach (var line in File.ReadAllLines(filePath))
                {
                    var thisLine = line;//.Trim();

                    if (thisLine.StartsWith("Tango", StringComparison.OrdinalIgnoreCase))
                    {
                        string[] data = File.ReadAllLines(filePath);
                        DataTable dt = new DataTable();
                        string[] col = data[0].Split(',');

                        foreach (string s in col)
                        {
                            dt.Columns.Add(s, typeof(string));
                        }

                        for (int i = 0; i < data.Length; i++)
                        {
                            string[] row = data[i].Split(',');
                            dt.Rows.Add(row);
                        }

                        dataGridView1.DataSource = dt;
                        dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
                    }

                }
CSV文件如下所示:

请帮忙。Tango N$10优惠券优惠后如何显示数据,10?

您正在做一个File.ReadAllLines两次,因此您的内部if语句没有用处。也许可以试试这样的

免责声明,这只适用于假设Tango将在您的csv文件的开头


那么,问题在哪里?问题是什么?这是我唯一想要的吗?那么如何显示该特定点的数据?是否只跳过csv中的前三个元素?或者你想从CSV的每一行跳过三个元素?基本上,但让我们使用我指定的子句。我最好的猜测是先读取数据表中的CSV文件,然后循环跳过所需的列…这并不是那么难的事。。试一试:
try
{
    var filePath = Path.GetFullPath(openAirtimeFile.FileName);

    bool FoundTango = false;
    foreach (var line in File.ReadAllLines(filePath))
    {
        var thisLine = line;//.Trim();

            if (thisLine.StartsWith("Tango", StringComparison.OrdinalIgnoreCase))
            {
                 FoundTango = true;
                 continue; //Tango has been found, skip to next iteration
            }

            if (FoundTango)
            {                        
                DataTable dt = new DataTable();
                string[] col = line.Split(',');

                foreach (string s in col)
                {
                    dt.Columns.Add(s, typeof(string));
                }

                for (int i = 0; i < data.Length; i++)
                {
                    string[] row = line.Split(',');
                    dt.Rows.Add(row);
                }

                dataGridView1.DataSource = dt;
                dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            }

      }