Avatar billede z1n Nybegynder
07. juli 2005 - 13:24 Der er 20 kommentarer og
1 løsning

forbindelse MySQL database

hej..

Jeg er ny i c# men har kodet c++ og php før

Jeg er ved at lave et lille program i c# som bruges som noget projekt styring ting (bruger det bare til at komme ind i c# og lære lidt) Jeg er nu kommet til det punkt at vi skal sq have noget database ind over med diverse brugere i og cases som pogrammet skal bruge. Databasen kører osv men hvordan forbinder jeg til den fra mit app (windows app) og kører sql kommandoere, henter info osv ?

tak...
Avatar billede dr_chaos Nybegynder
07. juli 2005 - 13:30 #1
sådan noget som det her ?
www.codeproject.com/cs/database/ConnectMySQL.asp+c%23+mysql&hl=da" target="_blank">http://66.249.93.104/search?q=cache:DzccSmUGhDYJ:www.codeproject.com/cs/database/ConnectMySQL.asp+c%23+mysql&hl=da
Avatar billede dr_chaos Nybegynder
07. juli 2005 - 13:34 #2
Avatar billede z1n Nybegynder
07. juli 2005 - 13:53 #3
de er ikke speciferet nok til mig det der ... det virker ikke og det er nok fordi jeg har sat odbc forkert op men står ikke hvordan osv . desuden kan man ikke få fat i bytefx pga fejl på deres side :(
Avatar billede arne_v Ekspert
07. juli 2005 - 14:17 #4
MySQL har overtaget ByteFX produktet og det hedder nu MySQL Connector for .NET og
kan hentes her:
  http://dev.mysql.com/downloads/connector/net/1.0.html
Avatar billede arne_v Ekspert
07. juli 2005 - 14:18 #5
eneste ændring er at namespace nu er MySql.Data og ikke ByteFX.Data

og jeg vil klart anbefale den fremfor ODBC !
Avatar billede arne_v Ekspert
07. juli 2005 - 14:19 #6
eksempel:

using System;
using MySql.Data.MySqlClient;

class MainClass
{
    public static void Main(string[] args)
    {
        MySqlConnection con = new MySqlConnection("Database=Test;Data Source=localhost;User Id=;Password=");
        con.Open();
        MySqlCommand cre = new MySqlCommand("CREATE TABLE temptest (id VARCHAR(20) PRIMARY KEY)", con);
        cre.ExecuteNonQuery();
        MySqlCommand ins = new MySqlCommand("INSERT INTO temptest VALUES (?id)", con);
        ins.Parameters.Add("?id", MySqlDbType.VarChar, 20);
        ins.Parameters["?id"].Value = "Dette er en test";
        //ins.Parameters.Add("?id", MySqlDbType.VarChar, 20).Value = "Dette er en test";
        ins.ExecuteNonQuery();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM temptest", con);
        MySqlDataReader rdr = sel.ExecuteReader();
        while(rdr.Read())
        {
            string id = (string)rdr[0];
            Console.WriteLine(id);
        }
        rdr.Close();
        MySqlCommand drp = new MySqlCommand("DROP TABLE temptest", con);
        drp.ExecuteNonQuery();
        con.Close();
    }
}
Avatar billede z1n Nybegynder
07. juli 2005 - 14:29 #7
jeg går ud fra jeg skal tilføje mysql connectoren til mit projekt på en eller anden måde sammen med kode... hvordan det ?
Avatar billede arne_v Ekspert
07. juli 2005 - 14:36 #8
du downloader og installerer

og så tilføjer du en reference til MySql.Data.dll til dit projekt
Avatar billede z1n Nybegynder
07. juli 2005 - 15:04 #9
vi er på vej til en løsning... nu får jeg dog runtime fejl når jeg trykker på min knap som laver connection. den skriver:
The application attempted to perform an operation not allowed by the security policy. The operation required SecurityException. To grant this application the required permission please contact your system administrator, or use the Microsoft .NET security policy administration tool.

Jeg tænkte... ahh der er sat en policy op på min bruger profil som gør jeg ikke må det her. men min kollager som sidder med policys sagde så at jeg jo var administrator på pcen og der ikke var nogle restriktioner for mig. så wtf ? (btw thx for jeres tålmådighed ... er pænt newb til det her ... anden dag med c# :P:P:P )
Avatar billede z1n Nybegynder
07. juli 2005 - 15:05 #10
jeg har foresten tweaket din kode til dette (med using namespace fætter knald i toppen et sted)

                MySqlConnection con = new MySqlConnection("Database=storm;Data Source=localhost;User Id=root;Password=root");
                con.Open();
                MySqlCommand sel = new MySqlCommand("SELECT * FROM cases", con);
                MySqlDataReader rdr = sel.ExecuteReader();
                while(rdr.Read())
                {
                    string id = (string)rdr[0];
                    //MessageBox.Show(id);
                    this.listCases.Items.Add(id);
                }
                rdr.Close();
                con.Close();
            }
Avatar billede arne_v Ekspert
07. juli 2005 - 15:11 #11
den security fejl har jeg ikke set
Avatar billede z1n Nybegynder
07. juli 2005 - 15:13 #12
:(
damn :D når jeg må prøve på min hjemmepc i aften så :D
Avatar billede z1n Nybegynder
07. juli 2005 - 15:19 #13
pis os... ser min kode forkert ud ellers ? og jeg er lidt usikker på hvordan du valgte feltet du ville vise ? rdr[0] er måske bare det første felt eller hvordan ?
Avatar billede arne_v Ekspert
07. juli 2005 - 15:22 #14
ja

rdr[0] er første felt, rdr[1] er andet felt etc.
Avatar billede z1n Nybegynder
07. juli 2005 - 15:23 #15
kan man evt lave det med navn på felt f.eks rdr["id"] og rdr["dato"] osv.. ?
Avatar billede Spotgun Seniormester
07. juli 2005 - 15:27 #16
Lige et spørgsmål fra sidelinien her: Er det muligt i Visual Studio at få tilføjet MySql Connectoren på listen over de andre komponenter man kan lave referencer til, eller skal man browse sig frem til den hver gang? (...man er vel doven :)
Avatar billede arne_v Ekspert
07. juli 2005 - 15:36 #17
man plejer også at kunne bruge navn
Avatar billede arne_v Ekspert
07. juli 2005 - 15:37 #18
jeg vil tro at hvis du smider den i GAC så vil den optræde i listen
Avatar billede Spotgun Seniormester
07. juli 2005 - 15:55 #19
Prøvede med Gacutil.exe uden held, men fandt så denne løsning der virker fint:

"If you wish to force VS.NET to display your custom assemblies within in the list maintained by the Add Reference dialog, all you need to do is place a copy of the assembly within the 'PublicAssemblies' folder located under C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE. Once you have done so, lo' and behold, your custom *.dlls are listed automatically."
Avatar billede arne_v Ekspert
24. juli 2005 - 15:22 #20
alt OK ?
Avatar billede z1n Nybegynder
30. juli 2005 - 03:18 #21
srt dette tog så lang tid.. jeg har stadig den fejl sikkerhed også på min private computer. Men er måske en fejl 40 mht database .. skal jeg lige undersøge men point kommer da her ellers..
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