Laden...

CSV im Gridview darstellen und Importieren (ASP.NET)

Erstellt von ASPKalle vor einem Jahr Letzter Beitrag vor einem Jahr 566 Views
A
ASPKalle Themenstarter:in
1 Beiträge seit 2022
vor einem Jahr
CSV im Gridview darstellen und Importieren (ASP.NET)

Servus,
Ziel ist es eine Tabelle mit 7 Spalten und n-Zeilen in einem GridView darzustellen.
Es hat schonmal funktioniert nur wurden dann die Daten nicht richtig in den jeweiligen Zeilen und Spalten dargestellt.

Ich habe schon unterschiedliche Weisen ausprobiert nur leider komme ich jetzt nicht wirklich produktiv voran.

Folgender Fehler entsteht:[ArgumentException: > Fehlermeldung:

Die Eingabezeichenfolge hat das falsche Format.<Nachname> konnte nicht in der RFID-Spalte gespeichert werden. Erwarteter Typ: Int32.]
Kann mir aber nicht herleiten woher der Fehler kommt.

Vielen Dank schonmal im Voraus 🙂


List<string> StaffList = new List<string>();
            using (StreamReader filereader = new StreamReader(StaffFileUpload.FileContent))
            {
                string readline = string.Empty;
                while ((readline = filereader.ReadLine()) != null)
                {
                    StaffList.Add(readline);
                }
                if (StaffList != null && StaffList.Count > 0)
                {
                    foreach (string info in StaffList)
                    {
                        string[] mitarbeiter = info.Split(';');
                        string Vorname = mitarbeiter[0];
                        string Nachname = mitarbeiter[1];
                        string RFID = mitarbeiter[2];
                        string ÜbergreifendeBerechtigung = mitarbeiter[3];
                        string Pin = mitarbeiter[4];
                        string PersNr = mitarbeiter[5];
                        string Verkaufsstelle = mitarbeiter[6];
                    }
                }
            }

            DataTable tblcsv = new DataTable();
            tblcsv.Columns.AddRange(new DataColumn[7] { new DataColumn(StaffList[0].Split(';')[0].ToString(), typeof(string)),
              new DataColumn("Nachname", typeof(string)),
              new DataColumn("RFID",typeof(int)),
              new DataColumn("Übergreifende Berechtigung", typeof(int)),
              new DataColumn("Pin",typeof(int)),
              new DataColumn("PersNR", typeof(int)),
              new DataColumn("Verkaufstelle",typeof(string)) });




            foreach (string row in StaffList)
            {
                if (!string.IsNullOrEmpty(row))
                {
                    tblcsv.Rows.Add();
                    int i = 1;
                    
                    foreach (string cell in row.Split(';'))
                    {
                        tblcsv.Rows[tblcsv.Rows.Count - 1][i] = cell;

                        i++;

                    }
  }
            }
            GridView1.DataSource = tblcsv;
            GridView1.DataBind();
        }      

16.842 Beiträge seit 2008
vor einem Jahr

Du scheinst nicht einfach nur ASP.NET zu nutzen, sondern das uuuuurralte, seit Jaaaaahren abgekündigte WebForms.
End of Life davon ist auch nah und ist in der neuen .NET Welt (.NET Core / 5+ auch nicht verfügbar). Hoffe, dass Dir das bewusst ist.

Die Fehlermeldung sagt ja eigentlich alles aus: dass Du offenbar versuchst einen Nachname, der offenbar ein String ist, in ein Int-Feld zu pumpen; also in das falsche.
Bei Dir stimmt also irgendwas am Mapping nicht - aber das sehen wir von hier aus nicht; evtl. liegts daran dass Du offenbar noch einen Vornamen hast, der aber beim Reinpumpen nicht verwendet wird.

Kontrollier das Mapping und/oder verwende den Debugger, um den den Fehler zu finden.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?