[VS/C#] IDataReader opgehaalde row bekijken

Pagina: 1
Acties:

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Hoe kan ik op een redelijk makkelijke manier bekijken wat de waardes zijn die ik uit de database opgehaald heb tijdens het debuggen van de huidige rij van een IDataReader? Ik kan dat object wel gaan debuggen maar ik verdwaal in sub sub sub sub sub sub menuutjes en ik heb nog nooit ook maar de opgehaalde waarde of het datatype terug kunnen vinden.

In de SQL Server Manager ziet alles er OK uit als de stored procedure handmatig uitvoer.

iOS developer


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Dat wordt een beetje lastig, omdat er geen 'row' is die in de CLR zit op dat moment. De datareader staat op een huidige row met een forward only cursor. De data bevindt zich veelal in non-managed code, bv bij oracle in de Java based CLI, in SqlServer in de C++ based dbdriver etc.

Wanneer jij een value ophaalt mbv GetValue(), dan wordt die waarde opgehaald uit de non-managed code.

Je kunt wel erom heen werken door in je code een object[] array te definieren als variable die je zelf niet gebruikt (dus bv tussen #if DEBUG #endif lines) en dan in de debugger GetValues(objectarray) aanroepen in de watches window bijvoorbeeld.

Je kunt ook in de intermediate window:
?reader.GetValue(index)
doen, dan krijg je de value ook.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • soepah
  • Registratie: December 2006
  • Laatst online: 16:11
als je debugt, en je hebt een Visual Studio editie, dan kun je gewoon met objectbrowser kijken in je object. hieruit kun je zeer gemakkelijk afleiden in welk subobject van de IDataReader de data zit.
(of met een Watch (View -> Watch) kan dit ook.)

wie van vissen houdt, houdt niet van vissen