Toon posts:

[asp.net] try and catch

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu dit stukje code gemaakt om een lege query af te vangen:
code:
1
2
3
4
5
try
    spoed_naam = reader_spoedinfo.item("spoed_naam")
catch
    spoed_naam = ""
end try


Dit werkt prima, alleen ik vraag me af of dit "nette" code is?
Zijn er voordelen van een if statement tegenover een try&catch op performance of ander gebied?

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

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 vindt het niet netjes...

try catch finally wordt normaliter gebruikt icm exceptions / foutafhandeling. Wat jij doet, is gewoon misbruik waar eik een if-statement hoort. En ja, het heeft negatieve invloed op de performance.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
:'( *snif*
:+

was er al een beetje bang voor....
eens zoeken hoe ik een leeg record dan kan afvangen via een ifstatement.
met dbNull wilde het niet werken, GOOGELUH :D

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

gorgi_19

Kruimeltjes zijn weer op :9

system.dbnull.value :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EfBe
  • Registratie: Januari 2000
  • Niet online
je kunt NULLS ook in je query meteen omzetten naar een nette waarde, bv in SQLServer met ISNULL(fieldname, newvalue) AS columnname of in Oracle met NVL(fieldname, newvalue) AS Columname

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


Verwijderd

Topicstarter
code:
1
2
3
if reader_spoedinfo.item("spoed_naam") is system.dbnull.value then
    response.write("NULL")
end if

levert: Exception Details: System.InvalidOperationException: No data exists for the row/column.

EfBe ik gebruikt MySQL volgens mij kan die dat niet... ga ik meteen ff checken op MySQL.com :)

Verwijderd

er zit toch ook een ItemExists in als het goed is.

daarmee kun je van te voren kijken of die bepaalde waarde erin zit.

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

gorgi_19

Kruimeltjes zijn weer op :9

Heeft het niets te maken met je probleem in dit topic?

[rml][ asp.net] NO DATA error[/rml]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominic
  • Registratie: Juli 2000
  • Laatst online: 21-08 19:07

dominic

will code for food

Ik gebruik het meestal zo (c#)

code:
1
2
3
4
5
6
7
8
9
10
11
12
try
{
   blaat blaat blaat
}
catch(Exception Err)
{
   throw Err;
}
finally
{
   Rollback(of iets dergelijks);
}

Download my music on SoundCloud


Verwijderd

Topicstarter
Heeft het niets te maken met je probleem in dit topic?
affraid so...
Ik kan geen andere oplossing vinden als een try & catch.
Hij gaat structureel op zijn plaat als er geen records gevonden zijn in de query

mhh nee bij nader inzien niet, want toen zaten er lege velden in de gevonden rows. In dit geval is de query gewoon helemaal leeg.

[ Voor 23% gewijzigd door Verwijderd op 16-04-2003 14:07 ]


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Verwijderd schreef op 16 April 2003 @ 14:06:
mhh nee bij nader inzien niet, want toen zaten er lege velden in de gevonden rows. In dit geval is de query gewoon helemaal leeg.
Query is leeg als in, geen records gevonden? Dan moet je checken of je recordset EOF is of niet...

Exact expert nodig?


Verwijderd

Topicstarter
Ik kan nergens vinden hoe je kan controleren of een odbcdatareader leeg is dmv EOF, volgens mij support ie het niet :(

wel vond ik deze op msdn maar krijg hem niet aan de praat: HasRows
Ik krijg steeds deze melding: "'HasRows' is not a member of 'Microsoft.Data.Odbc.OdbcDataReader'"

FieldCount werkt wel en bij deze staat ook dit vermeld: "Note: This namespace, class, or member is supported only in version 1.1 of the .NET Framework"
dus aan de versie kan het niet liggen in ieder geval....
iemand enig idee hoe ik deze aan de praat krijg? Want als hasRows false returned kan ik die mooi afvangen zonder error (hoop ik :+)

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:31
Je kan een datareader uitlezen, en als deze null returned, dan issie leeg:

code:
1
2
3
if( drMyReader.Read() != null )
{
}

https://fgheysels.github.io/


Verwijderd

Topicstarter
mhhh... dat wil hij ook niet...
code:
1
if reader_klantinfo.read() <> null then

geeft: "'null' is not declared. 'Null' constant is no longer supported; use 'System.DBNull' instead."

code:
1
if reader_klantinfo.read() <> DBnull then

geeft: "'DBnull' is a type and cannot be used as an expression."

Volgens mij wil odbc dbNull values alleen slikken van "echte results" dus een veld in de db die "null" mag zijn is een dbNull. Dit werkt dan niet voor een lege reader ben ik bang?
(of sla ik de plank nu mis?)

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:31
Verwijderd schreef op 17 April 2003 @ 11:07:
mhhh... dat wil hij ook niet...
code:
1
if reader_klantinfo.read() <> null then

geeft: "'null' is not declared. 'Null' constant is no longer supported; use 'System.DBNull' instead."
null is een C# keyword.
Als je een beetje verder denkt, weet je dat je in VB.NET nothing oid moet gebruiken.

https://fgheysels.github.io/


Verwijderd

Topicstarter
hahaha shit je was me net voor, was ff te enthousiast :D

code:
1
if not reader_klantinfo.read() = nothing then


werkt prima idd!! :)
Mijn dank is groot!!

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 20-08 09:32
dominic schreef op 16 April 2003 @ 13:19:
Ik gebruik het meestal zo (c#)

code:
1
2
3
4
5
6
7
8
9
10
11
12
try
{
   blaat blaat blaat
}
catch(Exception Err)
{
   throw Err;
}
finally
{
   Rollback(of iets dergelijks);
}
Dat is ook niet helemaal goed, want de 'finally' wordt altijd uitgevoerd. Dus ook als 'blaat blaat blaat' gewoon goed wordt uitgevoerd.

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:31
Inderdaad, die rollback moet dus in de catch.

https://fgheysels.github.io/

Pagina: 1