Avatar billede hoygaard Nybegynder
21. januar 2007 - 11:44 Der er 4 kommentarer

MySQL connector problem

Hola!

Nu har jeg misbrugt en halv weekend på at få det her til at fungere (halvdelen af tiden på MySQL's hjemmeside);

{
MySqlConnection myConnection = new MySqlConnection();
myConnection.ConnectionString = "Persist Security Info=False;database=movedb;server=localhost;Connect Timeout=30;user id=root; pwd=********";
myConnection.Open();         
}

Jeg får nedenstående fejl;

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
  at MySql.Data.MySqlClient.NativeDriver.get_SupportsBatch()
  at MySql.Data.MySqlClient.Statement.TokenizeSql(String sql)
  at MySql.Data.MySqlClient.Statement.BindParameters()
  at MySql.Data.MySqlClient.PreparableStatement.Execute(MySqlParameterCollection parameters)
  at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
  at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
  at MySql.Data.MySqlClient.Driver.Configure(MySqlConnection connection)
  at MySql.Data.MySqlClient.NativeDriver.Configure(MySqlConnection connection)
  at MySql.Data.MySqlClient.MySqlConnection.Open()
  at ConsoleApplication1.Program.Main(String[] args)

MySQL.dll er tilføjet under "references" i VS2005 IDE'en.

Jeg har ingen problemer med at forbinde til databasen hvis jeg bruger System.Data.Odbc, men jeg vil hellere bruge Connectoren af hensyn til hastigheden og jeg slipper for at oprette DSN på klient maskinerne.

// Høygaard
Avatar billede erikjacobsen Ekspert
21. januar 2007 - 11:51 #1
Det er vel ikke hele din kode, eller...?

Det er altid et "farligt" tegn, at man opretter en variabel inden i { ... }, som du gør

  {
    MySqlConnection myConnection;
  }

for så er den ikke tilgængelig udenfor. Man fristes derfor, for at undgå oversættelsesfejl, til at erklære endnu en variabel, der så er null.

Jeg gætter bare, ud fra oplysningerne ;)
Avatar billede hoygaard Nybegynder
21. januar 2007 - 12:07 #2
Indtil videre er det hele koden, blot for at teste om der er hul igennem :)
Men i dette tilfælde er den vel ikke null når den er inden i { ... }
Avatar billede erikjacobsen Ekspert
21. januar 2007 - 13:36 #3
Ja, så er det lidt underligt. Som sådan er der ikke noget galt i koden - opsætningen måske?? Hent nyeste connector?  Et lille eksempel på en webhotel giver en side med "OK", som den selvfølgelig skal:

<%@ Page Language="C#" Debug="true" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Web" %>
<%@ import Namespace="MySql.Data.MySqlClient" %>

<script runat="server">

  void Page_Load(object sender, EventArgs e) {
    MySqlConnection myConnection = new MySqlConnection();
    myConnection.ConnectionString = "Persist Security Info=False;database=XXXXXX;server=XXXXXX;Connect Timeout=30;user id=XXXXXXX; pwd=gf8U76BVcx3#q";
    myConnection.Open();   

    Response.Write("OK");
  }
</script>
Avatar billede hoygaard Nybegynder
21. januar 2007 - 14:46 #4
Bum, jeg har fundet fejlen. Jeg har hele tiden prøvet med Connector 5.0.3 , som forsøg prøvede jeg så med en ældre version (1.0.8), Så kørte det!

Tak for input ihvertfald :)

// Høygaard
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