Avatar billede wekil Nybegynder
29. januar 2006 - 13:12 Der er 17 kommentarer og
1 løsning

Visual Studio 2005 og MySql

jeg kan skrive en connectionString til en MySql database, og få vist data på siden.
Dim con As OdbcConnection = New OdbcConnection("DRIVER={MySQL};SERVER=mysql.xxxxx.dk;DATABASE=xxxxxx;UID=xxxxx;PWD=xxx;OPTION=1123")
Denne connection skal jeg skrive på selve aspx siden. når jeg anvender en MSSQL server skrives connectionString i web.config filen og jeg kan anvende datagrid o.s.v. jeg får en hel masse foræret, som jeg har meget brug for.
Hvordan kan jeg få de samme fordel når jeg er tvunget til at bruge en MySql database, eller er det overhovedet muligt. jeg har brugt meget lang tid på det, så jeg håber der er en der kan hjælpe mig.
Avatar billede snepnet Nybegynder
29. januar 2006 - 13:30 #1
til en start ville det være en stor fordel for dig, hvis du benyttede denne her til at tilgå din mysql database med:
http://dev.mysql.com/downloads/connector/net/1.0.html
om du bruger den ene eller den anden database dikterer ikke noget omkring hvor du skal lægge din connectionstring, og det er helt normalt at lægge den i web.config som det eneste sted.
du kan bruge de samme præsentationskomponenter (datagrid etc) uafhængigt at database.
mvh
Avatar billede snepnet Nybegynder
29. januar 2006 - 13:31 #2
kan du komme med én konkret ting du gerne vil gøre ... så kan du få et eksempel på det - og så kan vi tage den derfra.
mvh
Avatar billede wekil Nybegynder
29. januar 2006 - 13:35 #3
Ja jeg har tidligere hentet den du henviser til, men har ikke fået det til at virke, nu har jeg installeret den igen, hvordan finder jeg den
Avatar billede wekil Nybegynder
29. januar 2006 - 13:40 #4
Jeg kan ikke få fat på serveren gennem visual studio
Avatar billede snepnet Nybegynder
29. januar 2006 - 14:40 #5
du kan bruge noget kode i denne stil for at hive data op fra en sql-server:

SqlConnection connection = new SqlConnection(<connectionstring>);
SqlCommand selectCommand = new SqlCommand("select blah blah blah", connection);
// hvis du bruger datasets
SqlDataAdapter adapter = new SqlDataAdapter(selectCommand);
DataSet ds = new DataSet();
adapter.Fill(ds);

// og til præsentation
GridView grid = new GridView();
grid.DataSource = ds;
grid.DataBind();

// og ind på formen med dit grid
form1.Controls.Add(grid);

hvis du i ovenstående har lyst til at hente din data fra en mysql database, så opretter du en reference til den assembly du får installeret når du installere mysql connecter, og så bytter du Sql ud med MySql - så f.eks. den første linie bliver til:

MySqlConnection connection = new MySqlConnection(<connectionstring>);

har du lavet en reference til bemeldte assembly - kan du i vs2005 højreklikke på
MySqlConnection
og i den menu der kommer op trykker du så på resolve (hvilket giver dig 2 forskellige muligheder, som du frit kan vælge imellem).

der er med andre ord ikke nogen forskel på det der skal skrives om du bruger den ene eller anden database.

og... hvad var det du ikke kunne få til at virke med mysql connecter?

mvh
Avatar billede wekil Nybegynder
29. januar 2006 - 17:53 #6
Hej
Jeg starter med sidste spørgsmål
I ServerExplore h-Klikker jeg på server og siger add server, eller jeg h-Klikker på ad Connectionstring.
Ingen af delene kommer jeg igennem med.
og når jeg ikke har fat i databasen, kan jeg ikke bruge sqlDataSource fra toolbox.
Så det er det jeg spørger om hvor, skal jeg skrive ovenstående, skal det skrives på hver side, eller kan det skrives i web.config.
Du må undskylde men jeg ved ikke mere om det.
Så det første
"så opretter du en reference til den assembly du får installeret når du installere mysql connecter" Det er sort snak for mig.
Hvor begynder vi.
Avatar billede snepnet Nybegynder
29. januar 2006 - 18:16 #7
mmm.... ok.

hvis du højreklikker på dit webprojekt i visual studio, kan du vælge add reference, hvilket bringer dig en dialogboks frem.

et af fanebladene i den dialogboks hedder browse, og hvis du klikker på det - får du mulighed for at pege på en dll-fil i dit filsystem. her skal du vælge den du har installeret fra mysql - standard placering vil være:
C:\Program Files\MySQL\MySQL Connector Net 1.0.7\bin\.NET 2.0\MySql.Data.dll

dette gør - at du kan programmere imod den mysql-provideren, hvilket du gør ved at lave en using-statement i din codebehind:

using MySql.Data.MySqlClient;

hvorefter du kan skrive kode som den jeg viste.

hvis du laver en ny side - og trækker et gridview ind på den (og giver det id'et grid) - kan du skrive kode som nedenstående i din code-behind:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using MySql.Data.MySqlClient;

public partial class MySqlPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            MySqlConnection connection = new MySqlConnection("Server=Server;Database=Test;Uid=UserName;Pwd=Pass;");
            MySqlCommand selectCommand = new MySqlCommand("select blah blah blah", connection);
            MySqlDataAdapter adapter = new MySqlDataAdapter(selectCommand);
            DataSet ds = new DataSet();
            adapter.Fill(ds);

            grid.DataSource = ds;
            grid.DataBind();
        }
    }
}

kan du ikke se om du kan få det til at virke til at starte med.

husk at skifte den connectionstring ud med noget der passer hos dig + skift den selectcommand jeg har skrevet ud med noget der kan hente noget data hos dig.

mvh
Avatar billede wekil Nybegynder
30. januar 2006 - 14:14 #8
Hej
Det gik fint med at hente MySql.Data.dll
Men så er der ikke mere der er gået godt
vil man i VB bruge using?
jeg har lavet en ny side og trukket gridwiew ind på den og givet den id'et Grid, den nye side ser sådan ud:

Partial Class _Default

    Inherits System.Web.UI.Page


   
    Protected Sub Grid_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Grid.SelectedIndexChanged

    End Sub

    Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting

    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not Page.IsPostBack Then
            MySqlConnection(connection = New MySqlConnection("Server=xxxxx.dk;Database=xxx;Uid=xxx;Pwd=xx;"))
            MySqlCommand selectCommand = New MySqlCommand(SELECT DepartmentID, Name FROM Department", connection)
            MySqlDataAdapter(Adapter = New MySqlDataAdapter(selectCommand))
            Dim ds As New DataSet()
            Adapter.fill(ds)
            Grid.DataSource = ds
            Grid.DataBind()
        End If
    End Sub

   
End Class

første fejl er MySqlConnection
hvor der står MySqlConnection is a type and can not be used as an ekspression
Hvad skal jeg gøre ved det:)
håber du gider.
mvh
Avatar billede snepnet Nybegynder
30. januar 2006 - 15:14 #9
hej igen ... nej i VB benytter man Imports istedet for using i codebehind filen.

du kan til en anden gang benytte en oversætter (fra C# til VB.NET)... f.eks. denne her:
http://www.developerfusion.co.uk/utilities/convertcsharptovb.aspx

... din kode skal se om som noget i denne stil:

Dim connection As MySqlConnection = New MySqlConnection("...")
Dim selectCommand As MySqlCommand = New MySqlCommand("SELECT DepartmentID, Name FROM Department", connection)
Dim adapter As MySqlDataAdapter = New MySqlDataAdapter(selectCommand)
Dim ds As DataSet = New DataSet
adapter.Fill(ds)
Grid.DataSource = ds
Grid.DataBind

mvh
Avatar billede wekil Nybegynder
30. januar 2006 - 15:23 #10
Hej
Nu er der kun fejl på DataSet:
Type DataSet is not defined
Hvor definerer jeg DataSet

MVH
Avatar billede snepnet Nybegynder
30. januar 2006 - 15:30 #11
højreklik på DataSet og vælg resolve... så kan du vælge at får skrevet typenavnet fyldt ud - eller få sat en imports ind i toppen.
mvh
Avatar billede wekil Nybegynder
30. januar 2006 - 15:39 #12
ÅÅ.. sådan, så blev det løst
ved visning af siden i den rigtige verden får jeg følgende fejl:
Both DataSource and DataSourceID are defined on 'Grid'.  Remove one definition.
Grid.DataBind()er markeret som fejl

MVH
Avatar billede wekil Nybegynder
30. januar 2006 - 15:49 #13
:)))))) Det virker
Avatar billede snepnet Nybegynder
30. januar 2006 - 15:52 #14
det skulle det gerne ;o) - men du kan ikke angive både datasource og datasourceid.
mvh
Avatar billede wekil Nybegynder
30. januar 2006 - 16:03 #15
du får point nu, jeg har lært så meget af det her
Avatar billede snepnet Nybegynder
30. januar 2006 - 16:16 #16
jamen du får da et svar så :o)
mvh
Avatar billede snepnet Nybegynder
30. januar 2006 - 16:16 #17
du må sige til hvis der dukker mere op.
mvh
Avatar billede wekil Nybegynder
30. januar 2006 - 16:19 #18
Tak, det gør der nok men jeg skal lige fordøje det her, jeg gik sur i det for 2 år siden, og var lige ved at give op igen, så det er en stor dag for mig. tak
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