webForumDet fria alternativet

För många träffar i DataGrid - begränsa?

.NET

6 svar · 1 102 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Frågan#1

I databasen finns där cirka 8000 rader och av någon anledning så verkar det som att min DataGrid inte orkar visa dessa. Problemet ligger i att jag inte har möjlighet att ändra i sql-frågan.

Jag har egentligen bara möjlighet att ändra datasourcen:
dgGrupper.DataSource = beslagGrupper

Kan jag på något sätt här bestämma hur många rader jag vill visa? Har ni några tips på lösningar vid såna här begränsningar?

Medlem sedan juni 201161 inlägg
#2

Min första fråga är ju om du har läst den här blänkaren i dokumentationen?

Note
Before you use the DataGrid control, consider using the GridView control instead. The GridView control, which was introduced in the .NET Framework version 2.0, is the successor to the DataGrid control.

För jag hoppas inte att du kör .NET 1.1?

Min andra fråga blir då vilken version du kör och vilken typ din datakälla har? Det enklaste är ju att begränsa antalet i själva bindningen till datakällan.

Medlem sedan apr. 200312 679 inlägg
#3

Jag var kanske lite oklar i mitt första inlägg?

Det är en DataGridView jag använder. Och det är ett Windows Form-program som görs i vb.net.

Medlem sedan juni 201161 inlägg
#4

Okej, det var ju en annan sak. Fast min andra fråga kvarstår ju.

Du har alltså bara en SQL-fråga som drar upp samtliga rader att tillgå? Man kan förstås implementera paging, till exempel med VirtualMode, men frågan är om det hjälper. Du behöver ju fortfarande hålla datat i minnet. Man frågar sig vad det egentliga problemet är här.

Jag är rätt förvånad över att den inte klarar 8000 rader. Visst, det kan vara opraktiskt att bläddra upp och ner bland 8000 rader, men jag har ju sett folk ladda den med 10000-tals rader och det brukar fungera. Är du säker på att det är din DataGridView som bråkar? Vad är det som händer?

Medlem sedan apr. 200312 679 inlägg
#5

Oldtimer skrev:

Jag är rätt förvånad över att den inte klarar 8000 rader. Visst, det kan vara opraktiskt att bläddra upp och ner bland 8000 rader, men jag har ju sett folk ladda den med 10000-tals rader och det brukar fungera. Är du säker på att det är din DataGridView som bråkar? Vad är det som händer?

Du har rätt. Jag gjorde en räknare i for each-loopen så att jag kunde se på vilken rad det small i sql-frågan. Och det visade sig vara några fält som var NULL och då small det - utan att ge nån förklaring på varför.

Så jag får göra något som reder ut null i stället för att mecka med datagriden. :)

Medlem sedan juni 201161 inlägg
#6

Men den skall klara av NULL-värden från databasen. Vad får du för Exception och vad har det för meddelande? Vilken typ har kolumnen som du binder det fältet mot?

Medlem sedan apr. 200312 679 inlägg
#7

Oldtimer skrev:

Men den skall klara av NULL-värden från databasen. Vad får du för Exception och vad har det för meddelande? Vilken typ har kolumnen som du binder det fältet mot?

Ja, datagriden klarar null-värden. Men det var metoden (som automatgenereras som jag inte kan ändra i just nu) som smäller när den fick null-värden. Jag fick inga exceptions eller liknande det var därför jag blev så förvirrad. Men jag hittade tre rader i tabellen som var null och ska försöka åtgärda dem så försvinner problemet.

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)