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