Toon posts:

[ASP.NET] Data Access Application Block implementeren > HOE?

Pagina: 1
Acties:

Verwijderd

Topicstarter
In mijn code dien ik gebruik temaken van een data access application block. Ik kom er alleen niet uit.

Maar nu vraag ik me af hoe ik hiervan gebruik moet maken. Ik heb in mijn global.asax de volgende procedure staan die zou moeten werken. (Het is de bedoeling dat de storedProcedure de rollen van een gebruiker ophaalt uit de DB en deze in de roleListArray propt.)
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Application_AuthenticateRequest(sender As Object, e As EventArgs)
    If Request.IsAuthenticated Then
        'Determine this user's roles
                   Dim conn as New SqlConnection ("Initial Catalog=CIV;_
                               Server=(local); UID=sa; PWD=;")
        Dim reader As SqlDataReader = _
              SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, _ 
              "rolesForUser", New SqlParameter("@Username", User.Identity.Name))

        ' Create an array of role names
        Dim roleList As New ArrayList
        Do While reader.Read()
            roleList.Add(reader("Name"))
        Loop

        'Convert the roleList ArrayList to a String array
        Dim roleListArray As String() = roleList.ToArray(GetType(String))

        'Add the roles to the User Principal
        HttpContext.Current.User = _
             New GenericPrincipal(User.Identity, roleListArray)
    End If
End Sub



Echter wordt aangegeven dat 'SqlHelper' niet declared is. Nu zit de SqlHelper-class volgens mij niet standaard in het framework. Ik heb een instal-bestand gevonden hiervoor.

Deze heb ik geinstalleerd, maar ik weet niet hoe ik nu verder moet. Ik hoopte dat dmv de installatie en het importeren van de 'Microsoft.ApplicationBlocks.Data' namespace het probleem opgelost zou zijn. Niet dus.

Wat moet ik nu nog doen om deze procedure werkende te krijgen??

(Andere belangrijke import die ik niet vergeten ben is: 'System.Security.Principal' just letting u know :Y) )

[ Voor 16% gewijzigd door Verwijderd op 10-09-2003 11:58 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Moet je geen reference toevoegen aan je project?

https://fgheysels.github.io/


Verwijderd

Topicstarter
En hoe ga ik dat doen dan?

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
In VS.NET : Project Menu, Add reference, en dan de juiste component kiezen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik werk alleen niet met visual studio :) , dus hoe moet ik dit dan doen?

[ Voor 29% gewijzigd door Verwijderd op 10-09-2003 12:36 ]


  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
Dat hangt er vanaf hoe je je projecten build. Gebruik je wel een buildtool oid?

Als je het geheel van de commandline doet, dan kan je hier vinden wat voor opties je moet gebruiken bij de compiler (csc.exe): http://msdn.microsoft.com...ileroptionsbycategory.asp, onder het kopje .Net Framework Assemblies.

[ Voor 67% gewijzigd door zoepercavia op 10-09-2003 12:46 ]

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


Verwijderd

Topicstarter
nee, heb tot nu toe alleen nog maar mbv dreamweaverMX zitten proggen

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Je kan natuurlijk ook altijd gratis en voor niks de personal edition van Borland's C# Builder downloaden.

https://fgheysels.github.io/


Verwijderd

Topicstarter
ware het niet dat ik alles in VB doe

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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 September 2003 @ 13:07:
ware het niet dat ik alles in VB doe
Dan kan je sowieso de link van zoepercavica gebruiken en hierbij niet csc.exe gbruiken, maar vbc.exe.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

http://www.asp.net daar staat een handig gratis programmatje

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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 September 2003 @ 13:12:
http://www.asp.net daar staat een handig gratis programmatje
Als je op webmatrix doelt, afaik ondersteunt deze geen code-behind en wordt alles inline gedaan.

Als dat geen probleem is kan je die gebruiken. :)

[ Voor 10% gewijzigd door gorgi_19 op 10-09-2003 13:15 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 10 September 2003 @ 13:14:
[...]

Als je op webmatrix doelt, afaik ondersteunt deze geen code-behind en wordt alles inline gedaan.

Als dat geen probleem is kan je die gebruiken. :)
ja dat was de naam :) was te lui om te kijken... :o

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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 september 2003 @ 13:15:
[...]
was te lui om te kijken... :o
luiwammes.. :P :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Hmmm weer heel wat uren uitzoekwerk voor me volgens mij. Niet dat ik daar te lui voor ben, maar ik heb nog veeel meer te doen. en kan niet telang blijven hangen op een onderdeel.

Kan ik onderstaande code niet zo herschrijven dat ik geen gebruik hoef te maken van de sqlhelper? (Ja, ik heb hier niet veel verstand van. Heb deze procedure uit een document over authorizatie.)

Visual Basic .NET:
1
2
3
Dim reader As SqlDataReader = _
              SqlHelper.ExecuteReader(conn, CommandType.StoredProcedure, _ 
              "rolesForUser", New SqlParameter("@Username", User.Identity.Name))

[ Voor 14% gewijzigd door Verwijderd op 10-09-2003 13:43 ]


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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 September 2003 @ 13:41:
Kan ik onderstaande code niet zo herschrijven dat ik geen gebruik hoef te maken van de sqlhelper? (Ja, ik heb hier niet veel verstand van. Heb deze procedure uit een document over authorizatie.)
Ja dat kan. Gewoon connectie openen, sql statement uitvoeren en resultaat teruggeven.
Dit doet SQLHelper namelijk intern ook.

Trouwens, die Application blocks van MS zijn er om tijd te besparen. Het kost nu even tijd, maar daarna bespaart het tijd. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ja dat heb ik gelezen, dat dit tijd moet besparen. Maar hoe zou mij/de applicatie/de gebruiker dat tijd moeten besparen dan? Die procedure moet elke keer uitgevoerd worden wanneer iemand geauthenticate is. Of ik nu gebruik maak van zo'n block of op een andere manier.. ik zie het verschil niet...

[ Voor 6% gewijzigd door Verwijderd op 10-09-2003 13:50 ]


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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 september 2003 @ 13:49:
Ja dat heb ik gelezen, dat dit tijd moet besparen. Maar hoe zou mij/de applicatie/de gebruiker dat tijd moeten besparen dan? Die procedure moet elke keer uitgevoerd worden wanneer iemand geauthenticate is. Of ik nu gebruik maak van zo'n block of op een andere manier.. ik zie het verschil niet...
tijd = ontwikkeltijd

Of schrijf jij graag hele lappen code, welke ook met 1 regel code gedaan kunnen worden?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
nee, toch liever met 1 regeltje :)

maarja, ik ben zelf maar een beginner wat asp.net betreft. Dus elke keer loop ik tegen iets aan wat ik weer uit moet zoeken. En dit gaat weer veel tijd in beslag nemen om uit te zoeken. Dus volgens mij kan ik het beter zonder die sqlhelper gaan implementeren. Dan maar wat meer regels code.

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

gorgi_19

Kruimeltjes zijn weer op :9

Trouwens, sowieso vind ik de code in de eerste post vrij ranzig. Imho door een SQLDatareader niet thuis op deze plaats; hij mag wat bij betreft zelfs de DAL niet voorbij.

En je connectionstring die hoort imho thuis in je web.config.

Zie ook: [rml][ ASP.NET] Webdev tips[/rml]

[ Voor 13% gewijzigd door gorgi_19 op 10-09-2003 13:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Verwijderd schreef op 10 September 2003 @ 13:53:
nee, toch liever met 1 regeltje :)

maarja, ik ben zelf maar een beginner wat asp.net betreft. Dus elke keer loop ik tegen iets aan wat ik weer uit moet zoeken. En dit gaat weer veel tijd in beslag nemen om uit te zoeken. Dus volgens mij kan ik het beter zonder die sqlhelper gaan implementeren. Dan maar wat meer regels code.
dat probleem heb ik nou dus ook.

Ik merk dat .net harstikke krachtig is maar het kost me allemaal zoveel tijd. (logisch natuurlijk als je een taal nog niet goed kent). Wat ik ook merk is dat als je niet uit kijkt je alles nog op de "oude asp manier" doet en dat is natuurlijk ook niet de bedoeling..

Ik ben nu ook bezig met mijn eerste project in .net en hoeveel tijd ik al kwijt ben in het afstruinen van forums e.d.

Maar het begin is er nu eindelijk :P
(moet ook gelijk een soort funda bouwen dus ik kan nog even)

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Verwijderd schreef op 10 September 2003 @ 13:53:
nee, toch liever met 1 regeltje :)

maarja, ik ben zelf maar een beginner wat asp.net betreft. Dus elke keer loop ik tegen iets aan wat ik weer uit moet zoeken. En dit gaat weer veel tijd in beslag nemen om uit te zoeken. Dus volgens mij kan ik het beter zonder die sqlhelper gaan implementeren. Dan maar wat meer regels code.
Als je die sqlHelper niet wilt gaan gebruiken, dan moet je eens iets lezen over ADO.NET, en de System.Data en System.Data.SqlClient namespaces gaan bekijken.

Bekijk dan vooral volgende classes (en hun methods):

SqlConnection
SqlCommand
SqlDataAdapter
SqlDataReader
SqlTransaction

Om jouw voorbeeld te implementeren zonder SqlHelper doe je het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SqlConnection conn = new Connection ("connectionstring");

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT blaat..... ";

try
{
   conn.Open();
   SqlDataReader dr = cmd.ExecuteReader();

    while( dr.Read() )
    {
           // do stuff
    }
}
finally
{
     dr.Close();
     conn.Close();
}

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
gorgi_19 schreef op 10 september 2003 @ 13:55:
Trouwens, sowieso vind ik de code in de eerste post vrij ranzig. Imho door een SQLDatareader niet thuis op deze plaats; hij mag wat bij betreft zelfs de DAL niet voorbij.
Eensch.
En je connectionstring die hoort imho thuis in je web.config.
Eensch. Een connectionstring hoort thuis in de Appsettings sectie van de config-file.
:Y)

De topicstart kan natuurlijk ook zelf z'n eigen DbHelper object maken...
[rml][ Alg|.NET] Design van een generiek DbHelper object[/rml]

[ Voor 5% gewijzigd door whoami op 10-09-2003 14:01 ]

https://fgheysels.github.io/


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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 10 September 2003 @ 13:57:
[...]


dat probleem heb ik nou dus ook.

Ik merk dat .net harstikke krachtig is maar het kost me allemaal zoveel tijd. (logisch natuurlijk als je een taal nog niet goed kent). Wat ik ook merk is dat als je niet uit kijkt je alles nog op de "oude asp manier" doet en dat is natuurlijk ook niet de bedoeling..

Ik ben nu ook bezig met mijn eerste project in .net en hoeveel tijd ik al kwijt ben in het afstruinen van forums e.d.

Maar het begin is er nu eindelijk :P
(moet ook gelijk een soort funda bouwen dus ik kan nog even)
Het nadeel van ASP.Net is in ieder geval de naam; het lijkt voor geen meter op ASP en dit is ook gelijk de grootste valkuil.

Standaard ASP/VBScript de meest gebruikte combinatie. Echter, waar .Net min of meer volledig OO te noemen is, is VBScript dit nauwelijks. Dit vereist dan ook een compleet andere denkwijze (en nee, alleen het aanmaken van classes wil ik niet noemen dat een taal OO is).

En verder is ASP.Net groot, enorm zelfs. Als je ziet hoeveel mogelijkheden / en klassen je hebt, bestaat enorm het gevaar dat je er in verdrinkt. En het is een vrij nieuwe taal; wat weer zijn neerslag heeft op relatief veel bugs c.q. vreemde implementaties en relatief weinig voorbeelden.

Echter, alle begin is moeilijk. Ik ben nu al een redelijke tijd bezig met .Net en ik moet zeggen; als je het eenmaal doorhebt, gaan dingen een stuk makkelijker en eenvoudiger. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1