Toon posts:

[VB.net] Laatst toegevoegde ID doorsturen naar ander functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ben ik weer, kheb inmiddels al half uur zitten zoeken maar nog niets gevonden...

Via de functie AddUser voeg ik een gebruiker toe in een tabel. Ik wil hier het ID van doorsturen naar de functie AddVragen.

Ik krijg het alleen niet voor elkaar...Datareader heb ik al mee zitten proberen maar volgens mij is dit neit de juist oplossing...

de functie om users toe te voegen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function AddUser()
        Dim OleDbConn As OleDb.OleDbConnection
        Dim OleDbCmd As OleDb.OleDbCommand
        Dim strSql As String

        OleDbConn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.
OLEDB.4.0;" & _"Data Source=" & Global.dbLocatie & "enquete.mdb")

        strSql = "INSERT INTO TblRegistratie (UserID, Geslacht, 
Leeftijd) VALUES ('webuser', '" & Geslacht.SelectedValue & 
"', '" & Leeftijd.SelectedValue & "')"

        OleDbCmd = New OleDb.OleDbCommand(strSql, OleDbConn)
        OleDbCmd.Connection.Open()
        OleDbCmd.ExecuteNonQuery()
        OleDbConn.Close()

    End Function



En dan nog een ander vraagje, ik heb ook een checkboxlist met 3 vakjes, hoe kan ik deze waarde optellen. Nu haal ik de waarde op met checkboxlist.selectedvalue, maar dan neemt ie alleen de laagste waarden en worden niet alle opties opgeteld als ik meerdere dingen aan vink

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
Als je het ID van het nieuwe record in de DB hebt, kan je het toch gewoon 'returnen'? Je kan het ID toch als return-waarde van je method gebruiken?

Trouwens, gebruik eens parametrized queries. Dat is veel duidelijker en veiliger. Er staat een stukje over in de P&W FAQ, ik denk onder de SQL Sectie.

https://fgheysels.github.io/


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 01:20

TeeDee

CQB 241

Je laatst toegevoegde user zou je met een @@IDENTITY in je statement op kunnen halen.

Het optellen van je checkbox vakjes zou je met de volgende code neer kunnen halen:
C#:
1
2
3
4
5
6
7
foreach(ListItem item in ((CheckBoxList)FindControl("list_afwerking")).Items) 
    { 
      if (item.Selected)
       { 
         afwerkingsitems += item.Value + ","; 
        } 
} 

toevallig gisteren ook mee bezig geweest.

[ Voor 4% gewijzigd door TeeDee op 08-09-2004 13:57 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
whoami schreef op 08 september 2004 @ 13:56:
Als je het ID van het nieuwe record in de DB hebt, kan je het toch gewoon 'returnen'? Je kan het ID toch als return-waarde van je method gebruiken?

Trouwens, gebruik eens parametrized queries. Dat is veel duidelijker en veiliger. Er staat een stukje over in de P&W FAQ, ik denk onder de SQL Sectie.
En hoe return ik dat dan :S Ik ben pas begonnen met ASP.net, leer hier wel veel en zoek me t rambam naar vanalles... maar wat je zegt ken ik niet...

Over die parametrized queries, dat ga ik bekijken!

  • BM
  • Registratie: September 2001
  • Laatst online: 00:56

BM

Admin Softe Goederen
Visual Basic .NET:
1
2
3
4
5
function addUser() as long  // of welk type je ook wilt returnen

    addUser = [hier de waarde die je wilt returnen]

end function


werkte zo toch?

Xbox
Even the dark has a silver lining


Verwijderd

Topicstarter
SpeedAddict schreef op 08 september 2004 @ 14:06:
Visual Basic .NET:
1
2
3
4
5
function addUser() as long  // of welk type je ook wilt returnen

    addUser = [hier de waarde die je wilt returnen]

end function


werkte zo toch?
Dan moet ik wel die waarde ergens vandaan zien te krijgen, en dat weet ik niet....

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
Als je UserId (het veld dat de PK is in je DB) een autonumber - veld is, en je gebruikt Access of SQL Server, dan kan je 'SELECT @@identity FROM tabel' uitvoeren.
Je krijgt hiermee dan de waarde terug van het autonumber veld van het laatste geinserte record binnen de huidige scope/sessie. (Als je SQL Server gebruikt kan je beter de functie scope_identity() gebruiken).

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 08 september 2004 @ 14:18:
Als je UserId (het veld dat de PK is in je DB) een autonumber - veld is, en je gebruikt Access of SQL Server, dan kan je 'SELECT @@identity FROM tabel' uitvoeren.
Je krijgt hiermee dan de waarde terug van het autonumber veld van het laatste geinserte record binnen de huidige scope/sessie. (Als je SQL Server gebruikt kan je beter de functie scope_identity() gebruiken).
Ok dat begrijp ik dan tot zo ver:

code:
1
2
3
       strSql = "SELECT @@IDENTITY FROM TblRegistratie"
        OleDbCmd = New OleDb.OleDbCommand(strSql, OleDbConn)
        OleDbCmd.ExecuteNonQuery()


Maar wat ik dan nog niet begrijp is hoe ik de waarde uit OleDbCmd kan krijgen

Verwijderd

Topicstarter
via de Reader kun je die er dus uithalen...ik ben op de goede weg :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
ExecuteScalar is in dit geval een betere oplossing.
Eigenlijk hou ik niet zo zeer van DataReaders, omdat die de connectie volledig opeisen.

Een DataReader zou je eigenlijk enkel in je Data Access Laag mogen gebruiken, maar ik denk niet dat jij dat gebruikt.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 08 september 2004 @ 14:46:
ExecuteScalar is in dit geval een betere oplossing.
Eigenlijk hou ik niet zo zeer van DataReaders, omdat die de connectie volledig opeisen.

Een DataReader zou je eigenlijk enkel in je Data Access Laag mogen gebruiken, maar ik denk niet dat jij dat gebruikt.
Uhm...nee ik denk niet dat ik dat gebruik nee..al die termen, jongens...ik ben net begonnen :D

Maar komt goed zo met jullie hulp! Nou nog ff dat probleem met die Checkboxlist, want dat daarboven is C# en daar heb ik al helemaal geen kaas van gegeten dus daar gaak nu mee kl***en... als er nog tipgevers zijn? Graag!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
C# moet je makkelijk naar VB.NET kunnen omzetten. De achterliggende classes/framework zijn hetzelfde. Enkel de syntax verschilt.
Het gaat er gewoon om dat zo'n CheckBoxList een Items collectie heeft, en dat je die collectie kunt aflopen om te zien of iets geselecteerd is of niet.

https://fgheysels.github.io/

Pagina: 1