[ASP.NET] Inlezen data uit ASCII-file

Pagina: 1
Acties:

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Om gegevens te importeren moet er data ingelezen worden uit een ASCII textfile, die vervolgens in een tabel uit een MySQL database geimporteerd moeten worden.

Door middel van parameters (positie en lengte) van verschillende velden wordt de informatie uit de ASCII-file gehaald. Vervolgens maak ik een nieuwe dataset met datatable aan met een aantal columns die gevuld gaan worden uit de ASCII-file. De dataset wordt vervolgens gekoppeld aan een DataGrid die de gegevens netjes weergeeft.

Hierna is het de bedoeling dat de gebruiker items kan aanvinken om deze aangevinkte items vervolgens te importeren in de database. Dit gaat prima bij relatief weinig rows.

Nu zijn er ook ASCII-files met 5000+ rows. Het inlezen en binden aan de datagrid gaat prima (duurt wel meer dan 10-15 sec.). De gegevens zijn nu netjes zichtbaar. Probleem is nu echter dat het bij elke postback erg lang duurt voordat de pagina weer opnieuw is opgebouwd.......(door het grote aantal items in de datagrid???). Is dit te voorkomen? Hoe?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

Caching.

Verder doe je wat fout als bij iedere postback alles opnieuw gebind wordt;
ASP.NET:
1
If Page.IsPostBack then Exit Sub

[ Voor 93% gewijzigd door gorgi_19 op 25-05-2004 14:07 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:56
Ben je zeker dat je die ASCII file niet opnieuw inleest na een postback?

Is het nodig dat de viewstate van je datagrid ge-enabled is?

https://fgheysels.github.io/


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op 25 mei 2004 @ 14:06:
Caching.

Verder doe je wat fout als bij iedere postback alles opnieuw gebind wordt;
ASP.NET:
1
If Page.IsPostBack then Exit Sub
Heb nog geen ervaring met caching.... is het gemakkelijk te realiseren? kun je een voorbeeldje geven?

Het wordt niet steeds opnieuw gebind......daarom vind ik het ook zo vreemd dat het zo lang duurt.....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

EmilneM schreef op 25 mei 2004 @ 14:13:
Heb nog geen ervaring met caching.... is het gemakkelijk te realiseren? kun je een voorbeeldje geven?
http://www.google.nl/sear...l=nl&lr=lang_en%7Clang_nl
Het wordt niet steeds opnieuw gebind......daarom vind ik het ook zo vreemd dat het zo lang duurt.....
Best kans dat de viewstate dan loopt te etteren. Zet eens wat traces neer om te kijken waar de bottleneck zit.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:56
Doordat je viewstate ge-enabled is, is de grootte van je webpagina aanzienlijk en duurt het dus ook langer om die op te bouwen. Bekijk de source maar eens van je pagina die je voor je hebt in je browser. Als het dus niet nodig is om viewstate ge-enabled te hebben, kan je dat best uitschakelen.

Voorbeeldjes ivm caching: op de MSDN site vind je er wel wat artikels over.

https://fgheysels.github.io/


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Wat moet ik precies cachen? Ik heb de dataset ge-insert in de cache:

Visual Basic .NET:
1
Cache.Insert("Data", DataSet1, New CacheDependecy(Path))


Echter geen resultaat... opbouw van datagrid is nog steeds traag na elke postback.

[ Voor 17% gewijzigd door EmilneM op 25-05-2004 18:36 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

En lees je hem daarna uit de Cache uit?
En heb je al trace's gebruikt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:56
Tuurlijk heeft het geen zin om je dataset in de cache te steken. Je laadt je dataset nl. maar 1 keer in, dan heeft het geen zin om 'm in de cache te steken.
Het heeft te maken met de viewstate. Die stuur je iedere keer mee door, waardoor je pagina veel 'groter' wordt.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 26 mei 2004 @ 08:28:
Tuurlijk heeft het geen zin om je dataset in de cache te steken. Je laadt je dataset nl. maar 1 keer in, dan heeft het geen zin om 'm in de cache te steken.
Het kan afaik wel het eea schelen; je mist een heel stuk IO-operatie. Voor de rest heb je wel gelijk; na een postback worden de 5000 items uit de viewstate gehaald. :X
Het heeft te maken met de viewstate. Die stuur je iedere keer mee door, waardoor je pagina veel 'groter' wordt.
Dat zou betekenen dat HTTPCompression ook zou moeten helpen? 15 seconden is wel erg veel, zeker als je hem lokaal test; ondanks de omvang van een pagina. Maar dat kan je pas zeker weten als je traces neerzet. :P

[ Voor 7% gewijzigd door gorgi_19 op 26-05-2004 08:34 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Met traces heb ik nog nooit gewerkt.... Is dit goed te doen?

Als ik de viewstate uit zet moet het toch mogelijk zijn om de inhoud van de datagrid uit de Cache te halen? Als ik de datagrid in het cache zet en er vervolgens bij een postback uit lees is er ook geen resultaat:

Visual Basic .NET:
1
Cache.Insert("Data", DataGrid)


Visual Basic .NET:
1
2
3
Private Sub Page_Load(...) Handles MyBase.Load
    Cache.Get("Data")
End Sub

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:56
EmilneM schreef op 26 mei 2004 @ 09:41:
Met traces heb ik nog nooit gewerkt.... Is dit goed te doen?
Probeer het. Ik heb er nooit mee gewerkt, ik durf niet.... :Z

Met traces kan je zien kan je bepaalde informatie outputten, zoals de start-tijd, eindtijd v/e procedure, etc...
Als ik de viewstate uit zet moet het toch mogelijk zijn om de inhoud van de datagrid uit de Cache te halen? Als ik de datagrid in het cache zet en er vervolgens bij een postback uit lees is er ook geen resultaat:
Lees eerst eens iets over de verschillende caching-mogelijkheden. (Output caching).
Als je geen viewstate nodig hebt bij die grid, zet die viewstate dan uit.

[ Voor 9% gewijzigd door whoami op 26-05-2004 09:44 ]

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:52

gorgi_19

Kruimeltjes zijn weer op :9

@Emilnem

Een beetje eigen initiatief is wel gewenst. Je krijgt de termen aangereikt en dan blijf je vragen om voorbeelden en verduidelijking. Deze kan je zelf ook opzoeken via Google en anders via MSDN. Als dit nog meer een "Neem mij aan het handje topic wordt", gaat deze dicht. Oftewel: Probeer dingen zelf eens uit en vooral: lees de documentatie?

[ Voor 5% gewijzigd door gorgi_19 op 26-05-2004 09:49 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1