Avatar billede mathiash Nybegynder
07. januar 2006 - 23:31 Der er 28 kommentarer og
1 løsning

Forbinde til mysql

Hej!

Hvordan får jeg forbundet til mysql og hentet noget data?

Jeg kan php i forvejen, og der plejer jeg at lave to funktioner til layout top og layout bund i en global include fil.

Hvordan kan jeg lave noget lign. i asp.net?

Koder C#

// Mathias Hansen
P.S. min server er en xsp server fra mono-projektet hvis det har noget at sige.
Avatar billede snepnet Nybegynder
08. januar 2006 - 00:18 #1
til mysql kan du benytte mysql connector : http://dev.mysql.com/downloads/connector/net/1.0.html

... her en måde at hente data på - bare et eksempel:

using (SqlConnection con = new SqlConnection("..."))
{
    using (SqlCommand command = new SqlCommand("...", con))
    {
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                string s = reader.GetString(0);
            }
        }
    }
}

mht. til det med dit layout - så kan du masterpages, hvis du benytter asp.net 2.0, og bruger du version 1.X har du nogle tilsvarende muligheder vha. 3.parts komponenter.

et alternativ er at arbejde med usercontrols - men masterpage modellen er vanligvis enklere.

mvh
Avatar billede snepnet Nybegynder
08. januar 2006 - 00:19 #2
byt SqlX ud med MySqlX for at snakke med MySql ved brug af mysql connector.
mvh
Avatar billede snepnet Nybegynder
08. januar 2006 - 00:20 #3
jeg har ikke arbejdet med mono, men jeg tvivler på at der er den store forskel mht. det med at forbinde til databaser... hvorvidt masterpages er understøttet ved jeg ikke noget om.
mvh
Avatar billede arne_v Ekspert
08. januar 2006 - 10:08 #4
database mæssigt så er forskellen nok at Mono kommer med MySQL Connector for .NET
indbygget (det er uden tvivl mest brugte database på Mono)
Avatar billede snepnet Nybegynder
08. januar 2006 - 12:54 #5
ahh - der kan man bare se :o)
mvh
Avatar billede mathiash Nybegynder
08. januar 2006 - 14:56 #6
Hej! Jeg undrede mig lidt over hvordan det ville hænge sammen, jeg hentede connectoren fra mysql's side, men der er jo kun window dll's så kunne ikke helt forstå hvordan det så kunne køre på linux, jeg prøver lige den kode der.

Skal den bare fx. ind i onload?
Og så printe s? eller ligge den i en label?
Avatar billede arne_v Ekspert
08. januar 2006 - 15:03 #7
du har allerede connectoren på Linux

        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM temptest", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            string id = (string)rdr[0];
            // gør noget
        }
        rdr.Close();
        con.Close();
Avatar billede arne_v Ekspert
08. januar 2006 - 15:03 #8
du skal importere namespacet MySql.Data.MySqlClient
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:12 #9
Det virker ikke helt for mig.

Min kode ser sådan her ud:

<%@ Page Language="C#" %>
<%@ Import Namespace="MySql.Data.MySqlClient" %>
<script runat="server">
        MySqlConnection con = new MySqlConnection("Database=XXX;Data Source=localhost;User Id=XXX;Password=XXX");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM driftstatus", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            string id = (string)rdr[0];
            // gør noget
        }
        rdr.Close();
        con.Close();
server.execute(top.aspx);
</script>
            <table>
                    <tr>
                        <td valign="top" width="150">
                            <img alt="Driftstatus" src="/images/forside/Driftstatus.gif" />
                            <br />
                        </td>
                        <td valign="top" width="150">
                            <img alt="Nyheder" src="/images/forside/Nyheder.gif" />
                            <br />
                            Lorem ipsum dolor...
                        </td>
                        <td valign="top" width="150">
                            <img alt="QuickStatus" src="/images/forside/QuickStatus.gif" />
                            <br />
                            Lorem ipsum dolor...
                        </td>
                    </tr>
            </table>
           
<script runat="server">
server.execute(bund.aspx);
</script>

Kan ses på http://matisen.dk:8080
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:14 #10
Måske ikke så hensigtsmæssigt at den viser kode, og dermed også database oplysninger når der er sket en fejl. :)
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:15 #11
Min fejl. skal selvf sætte den i en onload funktion
Avatar billede arne_v Ekspert
08. januar 2006 - 15:15 #12
server.execute(top.aspx);

skal nok være

server.execute("top.aspx");
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:17 #13
Nåårh ok nu siger den: Error compiling a resource required to service this request. Review your source file and modify it to fix this error. (Parsing error)
Avatar billede arne_v Ekspert
08. januar 2006 - 15:19 #14
den skal i Page_Load !
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:21 #15
Kan godt være jeg er lidt dum :)
The type or namespace name `MySql' could not be found. Are you missing a using directive or an assembly reference?
Avatar billede arne_v Ekspert
08. januar 2006 - 15:36 #16
nu fik jeg lige læst http://www.mono-project.com/MySQL

Mono kommer med den gamle version

så hvis du bruger den i Mono indbyggede er namespacet ByteFX.Data.MySqlClient

ellers skal du downloade den nyeste 1.0.7 fra MySQL, bruge namespace MySql.Data.MySqlClient (de .dll er .NET assemblies og kan derfor godt bruges på Linux)
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:37 #17
Ahh, det er kun på windows at mysql er inkluderet, jeg skal køre dll filen igennem et program og assembly den tror jeg, ifølge http://www.mono-project.com/MySQL jeg prøver lige.
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:38 #18
Undskyld, havde ikke set du skrev :)
Avatar billede mathiash Nybegynder
08. januar 2006 - 15:54 #19
<%@ Page Language="C#" %>
<%@ Assembly Name="MySql.Data" %>
<%@ Import Namespace="MySql.Data.MySqlClient" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
void Page_load() {
        MySqlConnection con = new MySqlConnection("XXX");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT tekst FROM driftstatus", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            string id = (string)rdr[0];
            driftstatus.Text = id;
        }
        rdr.Close();
        con.Close();
}
</script>
            <asp:label id="driftstatus" runat="server" text=""></asp:label>
            <table>
                    <tr>
                        <td valign="top" width="150">
                            <img alt="Driftstatus" src="/images/forside/Driftstatus.gif" />
                            <br />
                        </td>
                        <td valign="top" width="150">
                            <img alt="Nyheder" src="/images/forside/Nyheder.gif" />
                            <br />
                            Lorem ipsum dolor...
                        </td>
                        <td valign="top" width="150">
                            <img alt="QuickStatus" src="/images/forside/QuickStatus.gif" />
                            <br />
                            Lorem ipsum dolor...
                        </td>
                    </tr>
            </table>

Den melder ingen fejl nu, men den skriver ingen data? Der er data i databasen.
Avatar billede arne_v Ekspert
08. januar 2006 - 16:07 #20
er der noget i den sidste drifts status (det er jo kun den du viser) ?
Avatar billede mathiash Nybegynder
08. januar 2006 - 16:18 #21
Ja der er noget i tabellen?
Avatar billede mathiash Nybegynder
08. januar 2006 - 16:29 #22
Yes!
Fandt fejlen, det virker åbenbart ikke hvis man ikke har husket parametrerne tusind tak!

Læg svar! :)
Avatar billede arne_v Ekspert
08. januar 2006 - 16:40 #23
moi ?
Avatar billede mathiash Nybegynder
08. januar 2006 - 17:18 #24
Vil du også have points snepnet?
Avatar billede mathiash Nybegynder
10. januar 2006 - 16:05 #25
Nå, så får du bare points arne.
Tusind tak for hjælpen! :)
Avatar billede snepnet Nybegynder
10. januar 2006 - 16:25 #26
sorry .... jeg har ikke fået nogle mails vedr. dette spørgsmål før den sidste du skrev.
mvh
Avatar billede arne_v Ekspert
10. januar 2006 - 16:29 #27
Avatar billede mathiash Nybegynder
10. januar 2006 - 16:32 #28
Okay, beklager.
Avatar billede snepnet Nybegynder
10. januar 2006 - 16:36 #29
Det er mig der beklager - det er jo træls at vente på svar når man har spurgt :o)
mvh
(er det generelt at der stadig er ballade med mailsys?)
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