Article View: be.comp.programming
Article #725Re: null waarden in datatable
From: Peter
Date: Sun, 14 May 2006 17:32
Date: Sun, 14 May 2006 17:32
65 lines
3370 bytes
3370 bytes
StriKe wrote:
>> Als ik het goed begrijp, wil je bij een lege string ("") een
>> null-waarde wegschrijven naar de database.
>
>
> Inderdaad
>
>> Een check zou moeten volstaan?
>>
>> If txtDuur.text = "" then
>> dr(0)(5) = dbnull.value
>> else
>> dr(0)(5) = CInt(TtxtDuur.Text)
>> end if
>
>
> Jouw code doet 'ongeveer' hetzelfde als deze :
> If TtxtDuur.Text.Length > 0 AndAlso IsNumeric(TtxtDuur.Text) Then
> dr(0)(5) = CInt(TtxtDuur.Text)
>
> als ik het goed begrijp?
Nee, bovenstaande code doet extra checks (beter), maar schrijft niet
altijd iets weg. Indien het een nieuw record betreft, zal een niet
gespecifeerd veld wellicht dbnull bevatten. Bij een update wordt de oude
waarde wellicht behouden (ipv dat er dbnull wordt ingeschreven.
De eerste code probeert altijd iets weg te schrijven naar de database.
Bij lege string een dbnull, bij numerieke waarde de waarde, en anders
genereer je een exception.
Trouwens, een dbnull wegschrijven naar een database wordt vziw niet vaak
gedaan. Ik zou de gebruiker eerder verplichten alle velden in te vullen
vooraleer een record te updaten.
>
> Aangezien er standaard al 'null' aanwezig is, lijkt het me overbodig om
> nog eens dbnull.value toe te voegen/te vervangen?
Bij een update hoeft er geen 'null' aanwezig te zijn.
>
> Of is daar wel een goede reden voor?
>
>> of misschien een try... catch?
>>
>> try
>> dr(0)(5) = CInt(TtxtDuur.Text)
>> catch
>> dr(0)(5) = dbnull.value
>> end try
>
>
> Dat werkt inderdaad ook, het zou dus volgens jou 'identiek' dezelfde
> werking moeten hebben dan de if then else?
Try ... catch is een totaal ander mechanisme dan een if-else
constructie. Try-catch is in feite een error-handling mechanisme dat
hier een beetje wordt 'misbruikt'. Als een fout gegenereerd wordt in het
try-block wordt die opgevangen en afgehandeld in het catch block.
Google eens op try catch finally. Verplichte lectuur als je .NET
programmeert.
mvg,
Peter
Technical Details
Message-ID:
<aRJ9g.425176$X75.11464802@phobos.telenet-ops.be>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!newsfeed.gamma.ru!Gamma.RU!feeder.ecngs.de!ecngs!feeder2.ecngs.de!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!195.130.132.66.MISMATCH!hoboe2bl2.telenet-ops.be!nntp.telenet.be!kwabbernoot.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mailReferences:
<mn.70ea7d65b632223d.48459@internetfreakz.be.invalid> <ypD9g.424252$GM2.11651173@phobos.telenet-ops.be> <mn.72e57d6512b10a60.48459@internetfreakz.be.invalid>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,1065910732a62429 X-Google-Attributes: gidfcea4,public X-Google-Language: DUTCH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!newsfeed.gamma.ru!Gamma.RU!feeder.ecngs.de!ecngs!feeder2.ecngs.de!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!195.130.132.66.MISMATCH!hoboe2bl2.telenet-ops.be!nntp.telenet.be!kwabbernoot.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail From: Peter <spetrelly@pandora.be> User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: be.comp.programming Subject: Re: null waarden in datatable References: <mn.70ea7d65b632223d.48459@internetfreakz.be.invalid> <ypD9g.424252$GM2.11651173@phobos.telenet-ops.be> <mn.72e57d6512b10a60.48459@internetfreakz.be.invalid> In-Reply-To: <mn.72e57d6512b10a60.48459@internetfreakz.be.invalid> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Lines: 65 Message-ID: <aRJ9g.425176$X75.11464802@phobos.telenet-ops.be> Date: Sun, 14 May 2006 17:32:54 GMT NNTP-Posting-Host: 81.165.235.226 X-Complaints-To: abuse@telenet.be X-Trace: phobos.telenet-ops.be 1147627974 81.165.235.226 (Sun, 14 May 2006 19:32:54 MEST) NNTP-Posting-Date: Sun, 14 May 2006 19:32:54 MEST Organization: Telenet Internet