[ASP.NET]Database koppeling

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 21:26

BlackBurn

One Ring To Rule Them All

Topicstarter
Ik ben bezig met een access database en nu lukt het me in principe wel om een koppeling te leggen en gegevens weer te geven etc, kortom bewerkingen met de database gaan me goed af.

Maar mijn vraag is nu eigenlijk, waarom heeft MS het zo omslachtig aangepakt, in klassiek ASP was het nog een eitje om een database koppeling te maken en deze te gebruiken terwijl ik nu wel even zoet ben geweest voor het werkte, het enigste voordeel wat ik me zo snel kan indenken, is dat de database in een soort van cache geheugen geplaatst word, maar dat is dan ook echt alles.

Kan iemand hier mij nog overtuigen dat de manier zoals het aangepakt behoort te worden in ASP.NET dat die inderdaad beter is, want anders ga ik toch terug naar de klassieke ASP manier, geloof dat je deze ook gewoon in ASP.NET pagina's kunt gebruiken.

/edit
Kom ajb niet aanzetten met MSDN pagina's etc, want heb al best veel doorgezocht ook op 4guys....etc.

[ Voor 7% gewijzigd door BlackBurn op 23-01-2003 18:34 ]

If it is broken, fix it. If it ain't broken, make it better!


  • PolarBear
  • Registratie: Februari 2001
  • Niet online
:? Het is helemaal niet moeilijk om een database koppeling te maken met asp.net. (zowel in vb.net als C# is dit sim-pel). Bovendien is ADO.Net ism een MS SQL server superieur wat mij betreft tegenover klassiek ASP.


En desondanks je edit van kom niet aanzetten met MSDN pagina's, ik zou toch wat beter daar kijken...
* http://aspnet.4guysfromrolla.com/articles/032702-1.aspx
* http://www.asp.net/Tutorials/quickstart.aspx

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 21:26

BlackBurn

One Ring To Rule Them All

Topicstarter
PolarBear schreef op 23 January 2003 @ 18:44:
:? Het is helemaal niet moeilijk om een database koppeling te maken met asp.net. (zowel in vb.net als C# is dit sim-pel). Bovendien is ADO.Net ism een MS SQL server superieur wat mij betreft tegenover klassiek ASP.


En desondanks je edit van kom niet aanzetten met MSDN pagina's, ik zou toch wat beter daar kijken...
* http://aspnet.4guysfromrolla.com/articles/032702-1.aspx
* http://www.asp.net/Tutorials/quickstart.aspx
Oké je hebt me al overtuigd, die pagina van 4guys, heb ik nog niet gezien |:( maar inderdaad, heb al een veel makelijkere manier gevonden, als hoe ik het nu heb gedaan, want van die hoeveelheid code word je gewoon bang. In ieder geval bedankt voor de url's, ga het nu op die andere manier proberen :)

If it is broken, fix it. If it ain't broken, make it better!


  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Ik ben eigenlijk wel benieuwd hoe je het oorspronkelijk hebt gedaan. :)

Database connectie in .net stelt echt niks voor ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 16-05 10:09
[nohtml]
BlackBurn schreef op 23 januari 2003 @ 18:32:


Maar mijn vraag is nu eigenlijk, waarom heeft MS het zo omslachtig aangepakt
Hoezo , omslachtig?
Om een connectie te maken is het maar een kwestie van een object van OleDbConnection of SqlConnection te instantieren en uw connectiestring mee te geven, en klaar is kees.
Het vullen van een dataset is misschien iets omslachtiger, maar het is wel goed ontworpen.
De achterliggende gedachte bij een DataSet is imho (ik zou het nog eens moeten uitzoeken) het 'Unit of Work' pattern.
Die DataSet is een generiek offline data-container. Je kunt er niet alleen gegevens die uit een dbms komen mee opvullen, maar ook gegevens uit bv. een xml file. Of je kunt die inhoud van je dataset naar een xml file schrijven.
in klassiek ASP was het nog een eitje om een database koppeling te maken en deze te gebruiken terwijl ik nu wel even zoet ben geweest voor het werkte, het enigste voordeel wat ik me zo snel kan indenken, is dat de database in een soort van cache geheugen geplaatst word, maar dat is dan ook echt alles.
Nu is het toch ook eenvoudig?
Ik denk dat jij het hier nu over DataSets hebt?
Kan iemand hier mij nog overtuigen dat de manier zoals het aangepakt behoort te worden in ASP.NET dat die inderdaad beter is, want anders ga ik toch terug naar de klassieke ASP manier
Klassieke ASP is a dead end... ASP.NET is the way to go...
geloof dat je deze ook gewoon in ASP.NET pagina's kunt gebruiken.
Dan zal je geen gebruik meer maken van het .NET framework. IIS 5 ondersteunt nog wel altijd gewone asp pagina's.

Owja,
Het is natuurlijk wel altijd lastig/moeilijk om de omschakeling naar een andere technologie te maken als je al enkele maanden/jaren ervaring hebt met een andere technologie.

[ Voor 6% gewijzigd door whoami op 23-01-2003 19:25 ]

https://fgheysels.github.io/


  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 21:26

BlackBurn

One Ring To Rule Them All

Topicstarter
Buzzman schreef op 23 January 2003 @ 19:15:
Ik ben eigenlijk wel benieuwd hoe je het oorspronkelijk hebt gedaan. :)

Database connectie in .net stelt echt niks voor ;)
een keertje via zo'n wizard in vs.net, maar dan krijg je helemaal een zooi en daarna een keer via een tutorial, die volgens mij hetzelfde deed,net iets korter, maar ook erg uitgebreid, het werkt nu ook op een vele makkelijkere en vooral kortere manier. Zal als ik straks terug ben eens kijken of ik de code zo nog ergens heb, aangezien ik heb al vervangen heb door me nieuwe code.

If it is broken, fix it. If it ain't broken, make it better!


Verwijderd

BlackBurn schreef op donderdag 23 januari 2003 @ 18:55:
[...]


Oké je hebt me al overtuigd, die pagina van 4guys, heb ik nog niet gezien |:( maar inderdaad, heb al een veel makelijkere manier gevonden, als hoe ik het nu heb gedaan, want van die hoeveelheid code word je gewoon bang. In ieder geval bedankt voor de url's, ga het nu op die andere manier proberen :)
Ik ben eigenlijk wel heel erg benieuwd hoe je code er nu uit ziet! Zou je die kunnen plaatsen?

  • Folkert
  • Registratie: September 2001
  • Laatst online: 22:15
Tsaj, die fout heb ik ook een keer gemaakt om de dataset via VS.net aan te maken met als gevolg dat er een strong typed dataset werd aangemaakt. Dit is idd erg omslachtig. Indien je slechts een simpele datareader nodig hebt, is een connectie met sqlserver wel erg snel en eenvoudig gemaakt moet ik zeggen....

Verwijderd

Vroeger kon ik zo super gemakkelijk een database openen;

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
Connection =    "Provider=sqloledb;" & _ 
                    "Data Source=xxx.xxx.xxx.xxx;" & _
                    "Initial Catalog=xxxxxxxxx;" & _
                    "User Id=xxxxxxxxxxxxx;" & _
                    "Password=xxxxxxxxxx"

    Set KlantDB = Server.CreateObject("ADODB.Recordset")

        SQL = "Select * from tblAdministratie where code='500';"

        KlantDB.CursorType = 1
        KlantDB.LockType = 3
        KlantDB.Open SQL, Connection
%>
Geachte heer <%=KlantDB("achternaam")%>

Uw adres (<%=klantdb("adres")%>) is correct ontvangen.... (bla bla bla)

<%
    Klantdb.close
    Set klantdb = nothing
%>

Hóe kan ik nu zoiets makkelijk in ASP.NET maken? Ik zie dat echt niet. Wat ik zie zijn alleen maar vage grids... Ik wil graag over op ASP.NET maar niet als het via vage grids moet...

Wie helpt mij?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Voorbeeldje:
C#:
1
2
3
4
5
6
7
8
9
using System.Data.OleDb;
OleDbConnection con = new OleDbConnection("hier je verbindingsstring");
con.Open();
OleDbCommand cmd = new OleDbCommand("Select * from tblAdministratie where code='500';", con);
OleDbDataReader rdr = cmd.ExecuteReader();
   while (rdr.Read())
      {
         //Do your thing!
      }
En dan nog wel netjes opruimen natuurlijk...

[ Voor 6% gewijzigd door OZ-Gump op 31-01-2005 16:10 ]

My personal website


  • whoami
  • Registratie: December 2000
  • Laatst online: 16-05 10:09
digidude: er zijn toch wel genoeg tutorials te vinden die daarover handelen ? Op MSDN vind je ook wel wat.
En wellicht vind je hier in de faq ook eea

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Wat ik eigenlijk met mijn voorbeeldje wilde aangeven is dat het ook in .Net redelijk simpel te realiseren is. En als je eenmaal een beetje doorhebt hoe, dan is het zelfs stukken simpeler werken dan in 'oud' ASP. Je hoeft bijvoorbeeld niet zelf een tabel-rij aan te maken voor elk record dat je wilt tonen als je met datagrids gaat werken.

Zoek eens wat tutorials op MSDN of gotdotnet op.

My personal website


  • Folkert
  • Registratie: September 2001
  • Laatst online: 22:15
Ik werk zelf eigenlijk uitsluitend met datalayers, hier een voorbeeld:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Class dal

    Dim connString As String = ConfigurationSettings.AppSettings("connectionString")
    Dim con As SqlConnection = New SqlConnection(connString)

Public Function getRecords() As SqlDataReader

        'command object maken
        Dim sql As String = "Select * FROM Table"
        Dim selectCommand As SqlCommand = New SqlCommand(sql, con)
        selectCommand.CommandType = CommandType.Text

        'open connection
        con.Open()
        Dim dr As SqlDataReader = selectCommand.ExecuteReader(CommandBehavior.CloseConnection)
        Return dr
        dr.Close()
        con.Close()

    End Function 

End Class


En in de code behind van een pagina:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub bindData()

        Dim dal as New dal
        Dim dr As SqlDataReader = dal.getRecords()

        While dr.Read
           ' bind controls etc          
        End While

        ' of voor een datagrid oid:
        datagrid.datasource = dr
        datagrid.databind()

        dr.Close()

    End Sub


Dit is een voorbeeld, er moet uiteraard nog de nodige error handling(try/catch/finally) in maar het geeft een idee....

Dit werkt voor mijn perfect, snel en overzichtelijk

[ Voor 14% gewijzigd door Folkert op 31-01-2005 16:31 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Zelf werk ik ook altijd met een Data Access Layer. Dat was alleen niet de vraag ;)
Er werd gevraagd hoe een verbinding met een database makkelijk gemaakt kon worden in ASP.NET, dus dat heb ik even laten zien. Een reactie van [digidue] zou overigens wel tof zijn ....

My personal website


  • whoami
  • Registratie: December 2000
  • Laatst online: 16-05 10:09
Als ik het goed heb, returned jouw DAL een datareader, waardoor je dus toch nog met data-specifieke dinges te maken hebt in je presentatie-laag; dan vraag ik me af waarom je een DAL gebruikt ?

Je DAL moet er nl. voor zorgen dat die dingen (zoals DataReaders, etc...) afgeschermd worden voor je presentatie-laag en business logic.
Nu moet je trouwens nog in je presentatie-laag ervoor gaan zorgen dat je datareader gesloten wordt.

Je DAL zou een object moeten returnen dat al volledig opgevuld is met de data uit je DB, en dan hoef je in je presentatie-laag enkel maar dat object te gebruiken. Geen geneuzel meer met datareaders etc....

https://fgheysels.github.io/


  • Folkert
  • Registratie: September 2001
  • Laatst online: 22:15
Het was niet de vraag maar het staat in principe in de code... connectionstring staat in de web.config....

Voor het topic:
XML:
1
2
3
4
<appSettings>
        <add key="connectionString" value="Data Source=190.190.200.100,1433;
Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"/>
</appSettings>


Voorbeeld is van http://www.connectionstrings.com/

  • whoami
  • Registratie: December 2000
  • Laatst online: 16-05 10:09
Folkert schreef op maandag 31 januari 2005 @ 16:37:
Het was niet de vraag maar het staat in principe in de code... connectionstring staat in de web.config....

Voor het topic:
XML:
1
2
3
4
<appSettings>
        <add key="connectionString" value="Data Source=190.190.200.100,1433;
Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"/>
</appSettings>


Voorbeeld is van http://www.connectionstrings.com/
Op wat reageer je nou ?

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Dat vroeg ik me ook net af. :?

My personal website


  • Folkert
  • Registratie: September 2001
  • Laatst online: 22:15
OZ-Gump schreef op maandag 31 januari 2005 @ 16:40:
[...]

Dat vroeg ik me ook net af. :?
Was nog een aanvulling op een eerdere reactie...

Maar Whoami, kan je een voorbeeld geven? Ik begrijp wat je bedoelt en zou graag willen weten hoe je een dergelijk object zou maken in een DAL.... heb je een stukje voorbeeld code of een link?

Verwijderd

OZ-Gump schreef op maandag 31 januari 2005 @ 16:09:
Voorbeeldje:
C#:
1
2
3
4
5
6
7
8
9
using System.Data.OleDb;
OleDbConnection con = new OleDbConnection("hier je verbindingsstring");
con.Open();
OleDbCommand cmd = new OleDbCommand("Select * from tblAdministratie where code='500';", con);
OleDbDataReader rdr = cmd.ExecuteReader();
   while (rdr.Read())
      {
         //Do your thing!
      }
En dan nog wel netjes opruimen natuurlijk...
Sorry, was even weg ... Bedankt voor je stukje code, dit ziet er inderdaad al een stuk "vriendelijker" uit.

Die datagrids komen op mij zo statisch over! Bij ASP "kon" je altijd ergens midden in je HTML code iets neerplanten wat je direct uit de database haalde <%=database("naam")%> ...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:45

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op maandag 31 januari 2005 @ 16:50:
Sorry, was even weg ... Bedankt voor je stukje code, dit ziet er inderdaad al een stuk "vriendelijker" uit.

Die datagrids komen op mij zo statisch over! Bij ASP "kon" je altijd ergens midden in je HTML code iets neerplanten wat je direct uit de database haalde <%=database("naam")%> ...
Statisch? :? Dan maak je gebruik van eigen Template Columns?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Ik denk dat [digidude] eerder bedoelt dat je voorheen makkelijk ergens gegevens tussen 'statische' stukken tekst kon proppen, zoals in het voorbeeld van de brief. Dat kan tegenwoordig natuurlijk nog steeds. Wanneer je werkt met een codebehind file is een mooie oplossing daarvoor bijvoorbeeld de literal.

Je kunt natuurlijk ook data binden aan controls (bijvoorbeeld een labeltje of een textbox). Eigenlijk zijn de mogelijkheden gewoon eindeloos...! ;)

My personal website

Pagina: 1