Avatar billede deepcore Nybegynder
15. marts 2005 - 15:35 Der er 7 kommentarer og
1 løsning

Få (MYSQL) Connector/Net 1.0 til at virke under Visual Studio

Jeg programmere normalt Java, men har brug for at lave nogle ting under .Net - i Visual Studio 2003.

Jeg vil gerne bruge Connector/Net 1.0 som adgang til MySQL for at prøve ADO.net (jeg er helst fri for ODBC)

http://dev.mysql.com/downloads/connector/net/1.0.html

Jeg er som sagt ikke god til visual studio, og har derfor brug for en mini-tutorial i hvordan jeg installere og bruger connectoren under visual studio.

Hvis nogen kan få mig så langt - og komme med lidt eksempelkode på hvordan jeg fyrer et sqlkald af, og får et svar tilbage kan jeg saktens klare resen selv.

Der gives point så snart jeg har fået forbindelse til min server og har fået lavet et simpelt database udtræk.
Avatar billede arne_v Ekspert
15. marts 2005 - 16:01 #1
Kode fragment:

        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM T1", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read()) {
            Console.WriteLine(rdr[0] + " " + rdr[1]);
        }
        rdr.Close();
        con.Close();
Avatar billede arne_v Ekspert
15. marts 2005 - 16:02 #2
Du skal have tilføjet en reference til den .dll fil du har hentet  til dit projekt
og så skal du have:

using MySql.Data.MySqlClient;

i toppen
Avatar billede deepcore Nybegynder
15. marts 2005 - 16:13 #3
..eeeeeehh... referance til dll fil........? hvor sætter jeg den? ...og hvodan finde jeg ud af hvor filen ligger ... connectoren var en installer (check ovenstående link), og klarede alt uden at spørge om stier. mv.
Avatar billede arne_v Ekspert
15. marts 2005 - 16:16 #4
Nu bruger jeg ikke selv Visual Studio.

Men du skal formentlig tilføje referencer under project properties eller
lignende (det svarer til at tilføje jar filer til classpath i Java).

Du kan enten finde den .dll fil i et subdir under der hvor MySQL Connector blev
installeret eller når det nu er er installer så er den sikkert puttet ind så
den optræder i listen over kendte assemblies.

[sådan er det i SharpDevelop]
Avatar billede deepcore Nybegynder
16. marts 2005 - 11:47 #5
det virker skam fint, og jeg må jo indrømme metoden ligner java til forveksling.

du har hermed fået dine point. Kommandoerne svarede ikke helt til dem i min komponent, men tæt nok til jeg kunne gætte sammenhængen.

Du skal bare svare så skal jeg give dig point....
hvis du har tid ville jeg blive glad hvis du ville give et kort eksempel på en insert :)
Avatar billede arne_v Ekspert
16. marts 2005 - 11:52 #6
svar
Avatar billede arne_v Ekspert
16. marts 2005 - 11:53 #7
Normal INSERT:

        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE m (id INTEGER PRIMARY KEY, val VARCHAR(50)) TYPE=" + tbltyp, con);
        cre.ExecuteNonQuery();
        long t1 = DateTime.Now.Ticks;
        for(int i = 0; i < N; i++)
        {
            MySqlCommand ins = new MySqlCommand("INSERT INTO m VALUES(" + i + ",'Dette er en test')", con);
            ins.ExecuteNonQuery();
        }
        long t2 = DateTime.Now.Ticks;
        MySqlCommand drp = new MySqlCommand("DROP TABLE m", con);
        drp.ExecuteNonQuery();
        con.Close();
Avatar billede arne_v Ekspert
16. marts 2005 - 11:54 #8
INSERT med parameters (svarer til Java prepared statement):

        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE pics (id INTEGER PRIMARY KEY, pic MEDIUMBLOB)", con);
        cre.ExecuteNonQuery();
        MySqlCommand ins = new MySqlCommand("INSERT INTO pics VALUES (@id, @pic)", con);
        ins.Parameters.Add("@id", MySqlDbType.Int);
        ins.Parameters.Add("@pic", MySqlDbType.MediumBlob);
        for(int i = 0; i < npics; i++)
        {
            ins.Parameters["@id"].Value = i;
            byte[] data = new Byte[picsize];
            for(int j = 0; j < picsize; j++)
            {
                data[j] = (byte)((i + j) % 256);
            }
            ins.Parameters["@pic"].Value = data;
            ins.ExecuteNonQuery();
        }
        con.Close();
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
Computerworld tilbyder specialiserede kurser i database-management

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