[.NET/C#] Connecten met MyODBC werkt niet

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik wil graag MyODBC gebruiken in .NET, maar dat wil niet echt lukken :(

Ik heb MySQL ODBC Driver 3.51 geinstalleerd, en 'Test Data Source' bij de ODBC Administrator (win2k) werkt.

Dit werkt echter niet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
String connectStr = "DSN=myodbc3;";

try
{
    OdbcConnection connection = new OdbcConnection(connectStr);
    connection.Open();
    
    Console.WriteLine("success, connected successfully");
    Console.WriteLine("State: " + connection.State);        // *
    
    OdbcCommand query = new OdbcCommand("CREATE TABLE blaat2(id int, name varchar(20))", connection);
    query.ExecuteNonQuery();
    
    Console.WriteLine("Query executed?");

    connection.Close();
}
catch (InvalidOperationException e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine(e.StackTrace);
}
catch (OdbcException e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine(e.StackTrace);
}

Dat geeft namelijk dit bericht:
code:
1
2
3
4
5
success, connected successfully
State: Closed
ExecuteNonQuery requires an open and available Connection. The connection's current state is Closed.
   at Microsoft.Data.Odbc.OdbcConnection.SetStateExecuting(...)
   (...)

Als ik de regel gemarkeerd met '*' weghaal geeft ie vreemdgenoeg dit:
code:
1
2
3
4
5
success, connected successfully

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Data.Common.Odbc32.SQLExecDirectW(...)
   (...)

:?

Ik snap er erg weinig van moet ik zeggen. Heeft iemand een id?

Verwijderd

Ik kan heel die OdbcConnection niet in m'n documentatie terug vinden, ding schijnt na beta 2 verdwenen te zijn? draai je nog met een oude framework sdk toevallig?

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
ik kwam gister iets tegen over het downloaden van odbc voor .NET..

zal nog eens kijken :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Oh ja, dat is waar, het is idd geen standaard .NET component :)

Ik heb dus inderdaad deze geinstalleerd.

Overigens is mijn code zo'n beetje gekopieerd van een voorbeeld op mysql.com

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Heeft niemand een idee ? ;(

Is er anders iemand die het wél gelukt is?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Bij mij werkt het wel. Ik gebruik deze code om te connecten:
code:
1
OdbcConnection connection = new OdbcConnection("DSN=hierjeDSN;DATABASE=hierjeDB;SERVER=localhost;UID=root;PORT=;OPTION=0;STMT=;");

Ik las in een nieuwsgroep dat de developer versie van MyODBC problemen kan geven, je zou dus kunnen proberen de stable versie (2.5 oid) te gebruiken.

Misschien dat je het intussen al hebt opgelost, maar wou toch ff melden :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Het is ondertussen inderdaad al opgelost :)

Het lag idd aan die versie 3.51. Een developer van MySQL AB had mij een debugversie van 3.51.02 opgestuurd (hij zei dat die versie over een paar dagen uitkomt), en die werkt dus wel goed met .NET :)

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

sowwy voor de kick

ik heb heb dus myODBC 3.51 geinstalleerd, de ODBC .NET Data Provider ook geinstalleerd en gebruik hetvolgende stukje code (de references zitten goed):
code:
1
2
3
4
5
6
7
8
9
10
11
string strCon = "driver={MySQL ODBC 3.51 Driver};server=voordeur;" +
    "database=mysql;uid=root;pwd=bla;option=3;";

OdbcConnection myCon = new OdbcConnection (strCon);
myCon.Open();

OdbcCommand myCmd = new OdbcCommand ("SELECT user FROM user");
OdbcDataReader myReader = myCmd.ExecuteReader();

myReader.Close();
myCon.Close();

Tijdens het runnen (build gaat goed), krijg ik de volgende exception:
code:
1
2
System.IO.FileNotFoundException: File or assembly name System, or one of its dependencies, was not found.
File name: "System"

Iemand enig idee hoe dit op te lossen of wat het probleem kan zijn?

Alvast bedankt.

ps. Het is Visual Studio .NET beta2

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op maandag 11 maart 2002 23:43 schreef stylee het volgende:Iemand enig idee hoe dit op te lossen of wat het probleem kan zijn?

Alvast bedankt.
[edit] sorry ik dacht dat het bij compileren gebeurde

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

edit: -

  • Orphix
  • Registratie: Februari 2000
  • Niet online
:) kan je via de server explorer wel een connectie maken?
(en ook een tabel overzicht krijgen?)

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Server Explorer, eh euhm hoe gebruik je dat ding :)

Als ik een nieuwe Data Connection wil maken kan ik iig niet kiezen voor de myODBC driver, alleen voor de OLEDB providers.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
hmm ja ik zie nu dat ik ook in de server explorer gebruik maak van de OLE DB Provider for ODBC drivers (ik kan dan wel in MySQL tables gluren).
Ik moet eerlijk bekennen dat ik nog niet echt verder ben gegaan met .NET en MySQL dus forgive my ignorance :)

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Je bedoelt waarschijnlijk deze: http://old.sw.com.sg/products/myoledb/

Zal ik morgen wel ff mee klooien, post hier wel of het gelukt is of niet.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op microsoft.public.dotnet.odbcnet heeft iemand een soortgelijk probleem. Daar wordt dit antwoord op gegeven:
It sounds like you are using a version of ODBC.NET that does not match the
version of the .NET framework you are using. If you are using beta2 of the
.NET framework, you must upgrade to the RTM version.

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

It sounds like you are using a version of ODBC.NET that does not match the
version of the .NET framework you are using. If you are using beta2 of the
.NET framework, you must upgrade to the RTM version.
Probleem gevonden denk ik :)

Achjah krijg hopelijk morgen de final in handen dus zie vanzelf wel of het werkt of niet :)
Pagina: 1