Avatar billede plaf Nybegynder
15. september 2005 - 16:25 Der er 12 kommentarer og
2 løsninger

Connecte til mysql via brugerkontroller

Er helt ny udi ASP.Net, men er forholdsvis habil udi ASP.

I ASP kan man inkludere filer. Så vidt jeg lige har kunnet læse mig til er det nærmeste man kommer i ASP.Net brugerkontrollere. Nu vil jeg så gerne have connectionen til MySql et sted, så jeg - hvis der sker ændringer, kun skal ændre et sted. - Jeg kan bare ikke få det til at virke... I en fil ser det fint ud sådan her:

<%@ Page CompilerOptions='/R:"C:\Program Files\Microsoft.NET\Odbc.Net\Microsoft.data.odbc.dll"' Language="vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>
<script runat="server">

    Sub Page_Load(Source as object, e as EventArgs)
        Dim sConString As String = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=Server; DATABASE=Database; UID=brugernavn; PASSWORD=adgangskode; OPTION=3"
        Dim oConnection as ODBCConnection = new ODBCConnection(sConString)
        Dim sSQL as String = "SELECT * FROM INet"
        Dim oDataAdapter as ODBCDataAdapter = New ODBCDataAdapter(sSQL, oConnection)
        Dim oDataSet as DataSet = new DataSet()
        oDataAdapter.Fill(oDataSet)
        oDataGrid.DataSource = oDataSet
        oDataGrid.DataBind()
    End Sub

</script>
<html>
<head>
</head>
<body>
    <ASP:DataGrid id="oDataGrid" Runat="server"></ASP:DataGrid>
</body>
</html>


Jeg kan bare ikke skille det ad i 2 filer, så jeg altså får database-forbindelsen i en fil for sig og kan hente den fra andre sider...

/Plaf
Avatar billede awolffdk Nybegynder
15. september 2005 - 19:17 #1
Connectionstrengen kan lægges i Global.asax.vb under

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Fires when the application is started
        ''Connection til brug
        Dim database As String = Server.MapPath("../DB.fil")
        Application("ConnString") = "Provider=Microsoft.Jet.OLEDB.4.0;User
ID=Admin;Data Source = " & database
    End Sub

så kan den kaldes som Application("ConnString") fra alle dine filer
Avatar billede plaf Nybegynder
16. september 2005 - 11:13 #2
Hej awolffdk
Du må hellere lægge et svar ind, for jeg fik det her til at virke:

En global.asax - fil der ser sådan her ud:

<%@ Application language="VB" %>

<script runat="server">

    Sub Application_Start(Sender As Object, E As EventArgs)
        ' Code that runs on application startup
        Application("ConnString") = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=server; DATABASE=db; UID=brugernavn; PASSWORD=adgangskode; OPTION=3"


    End Sub

</script>



- Og så "selve filen" test.aspx:

<%@ Page CompilerOptions='/R:"C:\Program Files\Microsoft.NET\Odbc.Net\Microsoft.data.odbc.dll"' Language="vb" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>
<script runat="server">

    Sub Page_Load(Source as object, e as EventArgs)
        Dim oConnection as ODBCConnection = new ODBCConnection(Application("ConnString"))
        Dim sSQL as String = "SELECT * FROM INet"
        Dim oDataAdapter as ODBCDataAdapter = New ODBCDataAdapter(sSQL, oConnection)
        Dim oDataSet as DataSet = new DataSet()
        oDataAdapter.Fill(oDataSet)
        oDataGrid.DataSource = oDataSet
        oDataGrid.DataBind()
    End Sub

</script>
<html>
<head>
</head>
<body>
    <ASP:DataGrid id="oDataGrid" Runat="server"></ASP:DataGrid>
</body>
</html>


/Plaf
Avatar billede erikjacobsen Ekspert
16. september 2005 - 11:18 #3
Et alternativ er at lægge connectionstring i web.config filen.
Avatar billede plaf Nybegynder
16. september 2005 - 11:22 #4
Hmm... er jo helt ny udi det her... - og som sådan bare glad, når noget virker ;-)

Hvad er fordele/ulemer ved det ene og det andet?

/Plaf
Avatar billede awolffdk Nybegynder
19. september 2005 - 18:48 #5
Glæder mig at hjælpe
Avatar billede awolffdk Nybegynder
19. september 2005 - 18:51 #6
Som jeg ser det er det lettere at vedligeholde webconfig da det er en ren XML fil, og som sådan kan redigeres med feks. notepad og ikke skal kompileres
Avatar billede plaf Nybegynder
22. september 2005 - 11:28 #7
Det er sjovt det her asp.net - men også lidt svært, når man i forvejen kun kender ASP og altså ikke har nogen erfaringer med klasser osv.

Hvordan ville det se ud, hvis databaseforbindelsen lå i webconfig?
Avatar billede plaf Nybegynder
22. september 2005 - 15:16 #8
Nå, nu er har jeg så forsøgt mig i visual studio.net

Jeg vil lave et login, der tester på brugernavn og adgangskode i en mysql-tabel - men først skal jeg jo connecte - også her..

Igen: Jeg vil gerne have en ConnectionString, som jeg kun skal ændre ét sted - altså har jeg som tidligere lagt den i global.asax

Nu opretter jeg så formen med navnet login.aspx. Når jeg sætter Web Forms på, får jeg også filen login.aspx.vb

Jeg har nu prøvet at skille koden ad så de er sådan her ud:

Global.asax ser ud som tidligere beskrevet.

login.asps- her ser toppen ud som følger:

<%@ Page CompilerOptions='/R:"C:\Program Files\Microsoft.NET\Odbc.Net\Microsoft.data.odbc.dll"' Language="vb" AutoEventWireup="false" Codebehind="login.aspx.vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Microsoft.Data.Odbc" %>

login.aspx.vb indeholder bl.a:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
        Dim oConnection As ODBCConnection = New ODBCConnection(Application("ConnString"))
        Dim sSQL As String = "SELECT * FROM INet"
        Dim oDataAdapter As ODBCDataAdapter = New ODBCDataAdapter(sSQL, oConnection)
        Dim oDataSet As DataSet = New DataSet
        oDataAdapter.Fill(oDataSet)
        oDataGrid.DataSource = oDataSet
        oDataGrid.DataBind()
    End Sub

Når jeg på denne måde deler indholdet i de 3 filer, får jeg følgende fejl:

Type 'ODBCConnection' is not defined
Type 'ODBCDataAdapter' is not defined
Name 'oDataGrid' is not declared

Importerer jeg min tidligere test test.aspx så fungerer det glimrende - Global.asax virker altså tilsyneladende.

Hmmm... er meget ny i det her - og meget lost...

/Plaf
Avatar billede awolffdk Nybegynder
23. september 2005 - 07:04 #9
Jeg vil tro at dine imports skal ligge i login.aspx.vb
Avatar billede plaf Nybegynder
23. september 2005 - 09:09 #10
Hvis jeg flytter: 

<%@ import Namespace="Microsoft.Data.Odbc" %>
<%@ import Namespace="System.Data" %>

Til login.aspx.vb får jeg følgende fejl:

Character is not valid. Dobbeltklikker jeg på beskeden bliver % markeret.

hmm...

/Plaf
Avatar billede plaf Nybegynder
23. september 2005 - 09:35 #11
Der er jo egentlig svaret på mit første spørgsmål, så jeg har oprettet et nyt:
http://www.eksperten.dk/spm/650331

/Plaf
Avatar billede erikjacobsen Ekspert
24. september 2005 - 00:05 #12
"Hvordan ville det se ud, hvis databaseforbindelsen lå i webconfig?"
http://aspnet.4guysfromrolla.com/articles/053102-1.aspx
Avatar billede awolffdk Nybegynder
24. september 2005 - 07:38 #13
Hvis der er svaret, er det høfligt at acceptere svaret.
Hilsen
Allan
Avatar billede plaf Nybegynder
26. september 2005 - 08:52 #14
Hej awolffdk!

Det må du undskylde. Hermed point!

/Plaf
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester