Thread View: be.comp.programming
7 messages
7 total messages
Started by Christian
Sat, 03 May 2003 09:31
OleDbDataReader
Author: Christian
Date: Sat, 03 May 2003 09:31
Date: Sat, 03 May 2003 09:31
11 lines
1499 bytes
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
Author: billyke
Date: Sat, 03 May 2003 09:41
Date: Sat, 03 May 2003 09:41
24 lines
1946 bytes
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
Author: Christian
Date: Sat, 03 May 2003 10:14
Date: Sat, 03 May 2003 10:14
41 lines
2276 bytes
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
Author: billyke
Date: Sat, 03 May 2003 11:31
Date: Sat, 03 May 2003 11:31
32 lines
1951 bytes
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
Author: Sam Mildener
Date: Sat, 03 May 2003 11:36
Date: Sat, 03 May 2003 11:36
39 lines
2280 bytes
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
Author: billyke
Date: Sat, 03 May 2003 11:43
Date: Sat, 03 May 2003 11:43
37 lines
2411 bytes
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
Author: Christian
Date: Sat, 03 May 2003 15:03
Date: Sat, 03 May 2003 15:03
16 lines
1702 bytes
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