🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
7 messages
7 total messages Started by Christian Sat, 03 May 2003 09:31
OleDbDataReader
#5561
Author: Christian
Date: Sat, 03 May 2003 09:31
11 lines
1499 bytes
Dag iedereen,

In een Visual Basic.Net project zou ik een code moeten schrijven waarmee ik
gegevens kan toevoegen aan een Access Xp Database.
Bij het uitvoeren van deze code heb ik steeds een exception, die veroorzaakt
wordt door de OleDbDataReader.
Kan me aub iemand vertellen wat hiervan de oorzaak kan zijn?
Ook had ik graag gevraagd waarvoor "ExecuteNonQuery" gebruikt wordt?
Alvast bedankt,

Christian.
Re: OleDbDataReader
#5562
Author: billyke
Date: Sat, 03 May 2003 09:41
24 lines
1946 bytes
"Christian" <Christian.Rosseel@pandora.be> wrote in message
news:r%Lsa.72726$t_2.6583@afrodite.telenet-ops.be...
> Dag iedereen,
>
> In een Visual Basic.Net project zou ik een code moeten schrijven waarmee
ik
> gegevens kan toevoegen aan een Access Xp Database.
> Bij het uitvoeren van deze code heb ik steeds een exception, die
veroorzaakt
> wordt door de OleDbDataReader.
> Kan me aub iemand vertellen wat hiervan de oorzaak kan zijn?
> Ook had ik graag gevraagd waarvoor "ExecuteNonQuery" gebruikt wordt?
> Alvast bedankt,
>
> Christian.
>
>

Misschien toch even wat meer uitleg, de exception bijvoorbeeld...

ExecuteNonQuery wordt gebruikt om iets op te databank uit te voeren (Update,
Insert, Delete), het enige wat je terugkrijgt is het aantal 'rows affected'.
Je krijgt dus geen rows, output parameters, return values, ... terug.
Re: OleDbDataReader
#5564
Author: Christian
Date: Sat, 03 May 2003 10:14
41 lines
2276 bytes
Dag Billyke,

Bedankt voor het antwoord.
Ik lees een record in vanuit de module, en tracht deze weg te schrijven naar
een Access Database dmv deze code :

Dim sSQLStatement As String = _

"INSERT INTO tblPersoneel values(pers_Code, pers_Naam, pers_Voornaam,
pers_Uurloon, pers_Indienstname, pers_Afd_Code)"



Dim sConnection As New OleDb.OleDbConnection _

("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB\dbPersoneel.mdb")

Dim objCommand As New OleDb.OleDbCommand(sSQLStatement, sConnection)

Try

sConnection.Open()

'De opdracht van OleDb.OleDbDataReader kan niet uitgevoerd worden.

'Er wordt mij steets verteld dat er parameters onbreken.

'Wat ik ook probeer het lukt niet.

Dim objDataReader As OleDb.OleDbDataReader = objCommand.ExecuteReader()



Zou het kunnen dat de ExecuteReader moet voorzien worden van argumenten,
aangezien er mij steeds als foutmelding gemeld wordt dat er parameters
ontbreken?
Zou u aub iets duidelijker kunnen zijn over de ExecuteNonQuery? Ik ben nog
maar nieuw in dit onderwerp en ken nog geen verschillen.
Alvast bedankt.

Christian.
Re: OleDbDataReader
#5567
Author: billyke
Date: Sat, 03 May 2003 11:31
32 lines
1951 bytes
> Dim sSQLStatement As String = _
>
> "INSERT INTO tblPersoneel values(pers_Code, pers_Naam, pers_Voornaam,
> pers_Uurloon, pers_Indienstname, pers_Afd_Code)"
>
>
>
> Dim sConnection As New OleDb.OleDbConnection _
>
> ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB\dbPersoneel.mdb")
>
> Dim objCommand As New OleDb.OleDbCommand(sSQLStatement, sConnection)
>
> Try
>
> sConnection.Open()
>
> 'De opdracht van OleDb.OleDbDataReader kan niet uitgevoerd worden.
>
> 'Er wordt mij steets verteld dat er parameters onbreken.
>
> 'Wat ik ook probeer het lukt niet.
>
> Dim objDataReader As OleDb.OleDbDataReader = objCommand.ExecuteReader()
>
>
>

Christian,

De SQL code van het Insert-statement is invalid, voor de rest zou alles
moeten werken lijkt me.
Re: OleDbDataReader
#5568
Author: Sam Mildener
Date: Sat, 03 May 2003 11:36
39 lines
2280 bytes
Christian wrote:
> Dag Billyke,
>
> Bedankt voor het antwoord.
> Ik lees een record in vanuit de module, en tracht deze weg te
> schrijven naar een Access Database dmv deze code :
>
> Dim sSQLStatement As String = _
>
> "INSERT INTO tblPersoneel values(pers_Code, pers_Naam, pers_Voornaam,
> pers_Uurloon, pers_Indienstname, pers_Afd_Code)"

<knip>

> 'De opdracht van OleDb.OleDbDataReader kan niet uitgevoerd worden.
>
> 'Er wordt mij steets verteld dat er parameters onbreken.

De parameters waarover het gaat zijn de parameters in je sql statement.
Je geeft namelijk niet op welke waarden moeten toegevoegd worden.

Een correct statement zou iets zijn in de trant van:
"INSERT INTO tblPersoneel
(pers_Code, pers_Naam, pers_Voornaam, pers_Uurloon, pers_Indienstname,
pers_Afd_Code)
VALUES
(12, 'Peters', 'Jan', '30', '10-10-1998', 7);"

Uiteindelijk komen in de plaats van deze waarden natuurlijk variabelen.
Daarvoor gebruik je een systeem met concatenatie zoals ... VALUES (" &
mijnpers_Code & ", '" & ...

of je gebruikt

objCommand.Parameters.Add(...)

--

Sam Mildener
Re: OleDbDataReader
#5569
Author: billyke
Date: Sat, 03 May 2003 11:43
37 lines
2411 bytes
Stel dat VoegToe() een functie is die je aanroept om het record weg te
schrijven, als parameters geef je de benodigde velden door (ik ga er van uit
dat er geen enkel optioneel is), ik weet ook niet de exacte datatypes van de
velden.

Sub VoegToe(pers_Code As String, pers_Naam As String, pers_Voornaam As
String, pers_Uurloon As Double, pers_Indienstname As Date, pers_Afd_Code As
String)

'Dan zou het SQL-statement er als volgt uitzien:

Dim sSQLStatement As String = "INSERT INTO tblPersoneel(pers_Code,
pers_Naam, pers_Voornaam, pers_Uurloon, pers_Indienstname, pers_Afd_Code)
values('" & pers_Code & "', '" & pers_Naam & "', '" & pers_Voornaam & "', "
& pers_Uurloon & ", #" & pers_Indienstname & "#, '" & per_Afd_Code & "')"

'Het is ook aangeraden om nog een extra functie rond alle strings te zetten
die de single quotes gaat ontdubbelen, anders krijg je fouten indien iemand
een ' in zijn naam heeft staan.
'bijvoorbeeld
'Private Function CleanSQL(sValue As String)
'    sValue = Replace(sValue, "'", "''")
'End Function



'Rest van de code

End Sub

>
> Christian,
>
> De SQL code van het Insert-statement is invalid, voor de rest zou alles
> moeten werken lijkt me.
>
>
Re: OleDbDataReader
#5571
Author: Christian
Date: Sat, 03 May 2003 15:03
16 lines
1702 bytes
Dag iedereen,

Bedankt voor de oplossing van mijn probleem.

Er is nog ��n kleinigheidje waarmee ik zit.
Nu dat ik zowel kan lezen als kan schrijven naar de Database, zou ik bij het
inlezen van elk record een nieuwe instantie moet maken van de klasse
clsPersoneelslid. Deze klasse bevat enkel de properties van elke persoon.
Elke instantie van clsPersoneelslid, dus elk record moet ik dan toevoegen
aan een SortedList.

Hoe kan ik nu deze nieuwe instatie crie�ren?

Bedankt,

Christian.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads