Avatar billede badass Nybegynder
19. maj 2011 - 13:45 Der er 7 kommentarer og
1 løsning

Hjælp til ADO exception...

Hej eksperter!

Mit program smider følgende exception:

System.InvalidCastException: COM-objektet af typen 'ADODB.ConnectionClass' kan ikke konverteres til grænsefladetypen 'ADODB._Connection'. Denne handling mislykkedes, fordi QueryInterface-kaldet på COM-komponent af grænsefladen med IID '{00001550-0000-0010-8000-00AA006D2EA4}' mislykkedes pga. følgende fejl: En sådan grænseflade understøttes ikke (Undtagelse fra HRESULT: 0x80004002 (E_NOINTERFACE))

Er der nogen der ved hvad der foregår?


//Rocco
Avatar billede arne_v Ekspert
19. maj 2011 - 15:19 #1
Du laver et ulovligt cast.

Flere detaljer kraever at vi ser noget kode.

Hvorfor bruger du ADO i .NET ????
Avatar billede badass Nybegynder
23. maj 2011 - 08:33 #2
Jeg havde jo regnet ud at det er et ulovligt cast :-)

Koden hvor det går galt:
Dim conn As New ADODB.Connection
conn.ConnectionString = "Driver={Pervasive ODBC Client Interface}; ServerName=" & ODBCConnectionProperties.ServerNavn & ";ServerDSN=" & ODBCConnectionProperties.DBBtrieveSQLNavn & ";" ' mwData1;"


Hvad benytter man i stedet for ADO?
Avatar billede arne_v Ekspert
23. maj 2011 - 15:07 #3
ADO.NET
Avatar billede arne_v Ekspert
23. maj 2011 - 15:09 #4
Bedst hvis databasen kommer med en ADO.NET provider.

Men ADO.NET har ogsaa ODBC.

Eksempel:

using System;
using System.Data.Odbc;

class MainClass
{
    public static void Main(string[] args)
    {
        OdbcConnection con = new OdbcConnection("Driver={mySQL};Server=localhost;Database=Test;");
        con.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT * FROM T1", con);
        OdbcDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read()) {
            int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];
            Console.WriteLine(f1 + " " + f2);
        }
        con.Close();
    }
}
Avatar billede badass Nybegynder
23. maj 2011 - 15:12 #5
Jeg har en reference til ADO (Microsoft ActiveX Data Objects 2.8) i projektet. Jeg kan forstå at det er forældet.

Hvad hedder tilsvarende reference for ADO.NET?
Avatar billede arne_v Ekspert
23. maj 2011 - 15:31 #6
Jeg mener ikke at du behoever lave nogle ekstra referancer for at bruge System.Data.Odbc - det er der bare per default!
Avatar billede badass Nybegynder
23. maj 2011 - 15:32 #7
Fint... Ser ud til at virke. Tak.
Smid et svar...
Avatar billede arne_v Ekspert
23. maj 2011 - 15:39 #8
svar
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
Kurser inden for grundlæggende programmering

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