对不起,我是一个初学者,我在这里阅读了很多关于stackoverflow的话题,但是我没有得到关于我的结果... 在我的代码中,我打开一个文件对话框以打开一个csv文件。 我的(1)csv文件具有标头includet,另一个(2)csv文件没有标头。
ProgrammStart:当我打开(1)时,datagridview(dgv)一切正常,但是当我再次打开(1)时,我得到了网格中显示的csv的标题行。 :ProgrammClose
ProgrammStart:当我打开(2)时,缺少第一行...当我再次打开(2)时,一切都很好。 :ProgrammClose
也许有人可以这么友善并向我展示我可以做些什么,因为我尝试了很多例子,但都没有得到想要的结果。
private void btoDateiOeffnen_Click(object sender, EventArgs e)
{
dt.Clear();
if (oFDcsv.ShowDialog() == DialogResult.OK)
{
using (StreamReader sr = new StreamReader(oFDcsv.FileName, Encoding.UTF8))
{
// bis Dateiende lesen
while (!sr.EndOfStream)
{
// Zeile einlesen und anhand des Trennzeichens ";" in einzelne Spalten (stringarray) splitten
string[] currentline = sr.ReadLine().Replace(",",".").Split(new string[] { ";" }, StringSplitOptions.None);
// wenn neue Tabelle (noch keine Spalten enthalten)
if (dt.Columns.Count == 0)
{
// n Spalten der ersten gelesenen Zeile hinzufügen
// als Spaltenüberschrift aufsteigende Zahlen beginnend mit 1
for (int i = 0; i < currentline.Length; i++)
{
dt.Columns.Add(Convert.ToString(i + 1));
//dt.Columns.Add(currentline[i]);
}
}
else
{
dt.Rows.Add(currentline);
}
}
sr.Close();
}
// DataGridView befüllen
dgvDateiAnsicht.DataSource = dt;
// DataGridView dritte Spalte ausblenden
dgvDateiAnsicht.Columns[2].Visible = false;
// DataGridView Spalten sortieren unterbinden
foreach (DataGridViewColumn column in dgvDateiAnsicht.Columns)
{
column.SortMode = DataGridViewColumnSortMode.NotSortable;
}
}
}
答案 0 :(得分:0)
for (int i = 0; i < currentline.Length; i++)
{
dt.Columns.Add(Convert.ToString(i + 1)); // here is the problem
//dt.Columns.Add(currentline[i]);
}
不确定,但我认为问题出在此。您将始终跳过“ 0”,因此他总是会跳过。
答案 1 :(得分:0)
...但是当我再次打开(1)时,我得到了显示的csv的标题行 在网格中
清除数据表和列:
private void btoDateiOeffnen_Click(object sender, EventArgs e)
{
dt.Clear();
dt.Columns.Clear();
// ... rest of the code ...