[ASP.NET] enkele waarde uit datareader niet aan te roepen

Pagina: 1
Acties:

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:07
Ik heb een probeem:

Ik heb een Stored Procedure die altijd 1 waarde teruggeeft (een stuk xml). Als ik deze via een datareader in een datagrid stop werkt dat ook (in de broncode is het resultaat zichtbaar). Ik wil nu het resultaat in een string stoppen, maar als ik de volgende code gebruik:
dr[0].ToString();
krijg ik de volgende foutmelding:
"System.InvalidOperationException: Invalid attempt to read when no data is present."
Ook dr["kolomnaam"].ToString(); levert geen resultaat op.

Hoe roep ik dat ene resultaat nu aan om 'm in een string te stoppen?

Roomba E5 te koop


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Je moet eerst de data uitlezen voordat je ze kan gebruiken:

code:
1
2
3
4
5
6
if( dr.Read() )
{

  Response.Write (dr.GetString(0));

}

https://fgheysels.github.io/


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:07
Zoiets zocht ik inderdaad, alleen het werkt niet.
if(dr.Read())
{
}
is blijkbaar niet waar want hij wordt niet uitgevoerd.

Edit:
Crap, wist ik veel dat dr leeggemaakt wordt als je'm al in een datagrid gebruikt hebt.... Werkt nu wel dus

[ Voor 32% gewijzigd door sig69 op 26-09-2003 14:17 ]

Roomba E5 te koop


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
sig69 schreef op 26 September 2003 @ 14:16:
Zoiets zocht ik inderdaad, alleen het werkt niet.
if(dr.Read())
{
}
is blijkbaar niet waar want hij wordt niet uitgevoerd.

Edit:
Crap, wist ik veel dat dr leeggemaakt wordt als je'm al in een datagrid gebruikt hebt.... Werkt nu wel dus
Een datareader is een forward only en read-only manier om data te gaan uitlezen. Eens je ze uitgelezen hebt, kan je er dus niet meer aan.

Daarnaast is het imho beter om geen dataReader in je ASP.NET pagina te gaan gebruiken. Daarmee ga je nl. je data-access en je presentatie-laag in elkaar verweven.

https://fgheysels.github.io/


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 23:07
Nou ja, d'r wordt in dit geval weinig gepresenteerd. Het gaat er (voorlopig )alleen om dat er een xml file gegenereerd wordt.

Roomba E5 te koop


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

sig69 schreef op 26 september 2003 @ 16:41:
Nou ja, d'r wordt in dit geval weinig gepresenteerd. Het gaat er (voorlopig )alleen om dat er een xml file gegenereerd wordt.
maak er dan een dataset van en gebruik dataset.writexml?

modbreak:
Moet jij nu altijd zo snel zijn?

[ Voor 13% gewijzigd door whoami op 26-09-2003 16:45 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 21-08 15:00
Als je maar 1 waarde teruggeeft, dan kan je toch ook ExecuteScalar() gebruiken? Daar hoef je geen datareader voor te openen.

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

gorgi_19 schreef op 26 September 2003 @ 16:42:
<font color=blue>modbreak:
Moet jij nu altijd zo snel zijn? </font>
offtopic:
O-) Mja.. Ga dan ook niet met de tamtam je berichten versturen.... :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1