Avatar billede Simon Praktikant
11. november 2004 - 13:01 Der er 10 kommentarer og
1 løsning

kommunikere med MySql fra C# uden at installere noget på clienten

Hvordan kommunikerer jeg med en MySql database, fra et C# program uden at skulle installere andet end applikationen hos clienten?

Jeg har fået det til at virke ved at installere "Microsoft.Data.Odbc" på min udviklingsmaskine, men det ønsker jeg ikke at skulle installere på alle clinterne.
Avatar billede arne_v Ekspert
11. november 2004 - 13:07 #1
Hvis de er på .NET 1.1, hvilket de burde være, så har de System.Data.Odbc !

(Microsoft.Data.Odbc er en .NET 1.0 ting)

Men ellers behøver man ikke "installere" noget. Bare de DLL' man bruger
distribueres sammen med EXE file så virker det (.NET er XCOPY deployment !).
Avatar billede Simon Praktikant
11. november 2004 - 13:17 #2
Ja det var også det jeg regnede med. Men når jeg kører programmet på en anden maskine (med .NET 1.1) så får jeg følgende fejl:
--------------------------------------------------------------------
Microsoft.Data.Odbc.OdbcException: ERROR [IM002][Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified
at Microsoft.Data.Odbc.OdbcConnection.Open()
at DBBoundary.DBBoundary.ExecuteSQL(String sqlStatement)
------------------------------------------------------------------
Avatar billede arne_v Ekspert
11. november 2004 - 13:21 #3
Det har ikke noget med DLL at gøre.

Den kan ikke lide din connection string !
Avatar billede arne_v Ekspert
11. november 2004 - 13:22 #4
Du bruger vel ikke DSN ?

(for så skal DSN naturligvis defineres)

Er ODBC driveren til den pågældende database installeret ?

(det kræver ODBC - og ODBC er ikke XCOPY deployment !)
Avatar billede Simon Praktikant
11. november 2004 - 13:22 #5
min connection string ser sådan her ud:

string myConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                        "SERVER=***.***.***.***;" +
                        "DATABASE=*******;" +
                        "UID=********;" +
                        "PASSWORD=*********;" +
                        "OPTION=3";
Avatar billede Simon Praktikant
11. november 2004 - 13:24 #6
Nej der er ikke installeret nogen ODBC-driver til MySQL-databasen på clientmaskinerne. Det er den slags jeg helst vil undgå hvis det kan lade sig gøre.
Avatar billede arne_v Ekspert
11. november 2004 - 13:27 #7
Det forklarer problemet.

Mit forslag:
  - bruge ByteFX/MySQL .NET connector
  - distribuer dens DLL sammen med din EXE

så bør det virke med XCOPY deployment !
Avatar billede Simon Praktikant
11. november 2004 - 14:08 #8
Tak for hjælpen.
Jeg havde ikke lige overvejet det med XCOPY deployment. Nu virker det.
Til andre der kunne være interesserede, gør jeg som følger:
-----------------------------------------
try
{
    ByteFX.Data.MySqlClient.MySqlConnection dbConnection
        = new ByteFX.Data.MySqlClient.MySqlConnection();
   
   
    string myConnectionString = "" +
        "SERVER=***.***.***.***;" +
        "DATABASE=******;" +
        "UID=*******;" +
        "PASSWORD=*******;" +
        "";
    dbConnection.ConnectionString =myConnectionString;
    ByteFX.Data.MySqlClient.MySqlCommand dbCommand
        = new ByteFX.Data.MySqlClient.MySqlCommand();
    dbConnection.Open();
    dbCommand.CommandText=sqlStatement;
    dbCommand.Connection=dbConnection;
    IDataReader IReturn;
    IReturn=dbCommand.ExecuteReader();
    dbConnection.Close();
}
catch(System.Exception exc){MessageBox.Show(exc.ToString());}
-----------------------------------------
Avatar billede Simon Praktikant
11. november 2004 - 14:09 #9
Hvis du lige smider et svar, så får du point :-)
Avatar billede arne_v Ekspert
11. november 2004 - 15:03 #10
svar
Avatar billede arne_v Ekspert
11. november 2004 - 15:04 #11
XCOPY deployment er nok en af de virkeligt store fordele ved .NET
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