Avatar billede grafikeren Nybegynder
30. december 2005 - 20:10 Der er 9 kommentarer og
1 løsning

OleDB problemer

Hej.

Jeg har klistret noget kode sammen til en indsætning af nogle oplysninger til en MySQL database. (Nøj, en rodet sætning... Har vist siddet her lidt for længe). :o) Jeg har dog fået lidt problemer, da jeg stadig er ved at lære ASP.net. Jeg forstår stadig ikke helt konseptet bag de mange funktioner i ado.net.

MEN, mit problem er, at da jeg skulle omdanne min kode fra en Access til en MySQL database, så bliver compileren sur:

System.Data.OleDb.OleDbException: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.

Source error: dbConn.Open();

Den relevante kode er:
// Generates database connection string
private string GetConnectionString()
{
//(gamle access, som virker) return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(MDBFILE) + ";";
return "PROVIDER=SQLOLEDB; Data Source=localhost; Initial Catalog=dbnavn; User ID=user; Password=pass";
           
}

        // Writes file to the database
        private int WriteToDB(string strName, string billedtekst, string strNummer, ref byte[] Buffer)
        {
            int nFileID = 0;

            // Create connection
            OleDbConnection dbConn = new OleDbConnection(GetConnectionString());

            // Create Adapter
            OleDbDataAdapter dbAdapt = new OleDbDataAdapter("SELECT * FROM fotoalbumBilleder", dbConn);
           
            // We need this to get an ID back from the database
            dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey;
           
            // Create and initialize CommandBuilder
            OleDbCommandBuilder dbCB = new OleDbCommandBuilder(dbAdapt);

            // Open Connection
            dbConn.Open();
                   
            // New DataSet
            DataSet dbSet = new DataSet();
                   
            // Populate DataSet with data
            dbAdapt.Fill(dbSet, "fotoalbumBilleder");

            // Get reference to our table
            DataTable dbTable = dbSet.Tables["fotoalbumBilleder"];

            // Create new row
            DataRow dbRow = dbTable.NewRow();




Hvad går galt? Hvis der ikke er noget galt, så skal det jo nok oversættes til ODBC - kan nogen hjælpe der (forbindelsen har jeg)?
Avatar billede arne_v Ekspert
30. december 2005 - 20:15 #1
PROVIDER=SQLOLEDB er en OLE DB driver til MS SQLServer

den duer ihvertfald ikke til MySQL !
Avatar billede arne_v Ekspert
30. december 2005 - 20:17 #2
En MySQL ditto ser ud som:

Provider=MySQLProv

men har du en OLE DB provider til MySQL ??
Avatar billede arne_v Ekspert
30. december 2005 - 20:18 #3
Jeg vil iøvrigt klart anbefale MySQL Connector for .NET fremfor både OLE DB og ODBC
Avatar billede grafikeren Nybegynder
30. december 2005 - 20:34 #4
MySQL Connector -> Men virker den sammen med resten af koden?
Avatar billede arne_v Ekspert
30. december 2005 - 20:37 #5
hvis du erstatter alle OleDb med MySql og retter connection string så ja
Avatar billede grafikeren Nybegynder
30. december 2005 - 22:46 #6
Mange tak! Det var jo en simpel operation. :o)

Jeg har stadig ikke styr på database håndteringen i asp.net - måske du kan hjælpe mig endnu en gang. Hvordan laver jeg en simpel SQL update, hvis jeg nu har en streng med SQL UPDATE sætningen i? Jeg savner lidt asp's execute.
Avatar billede grafikeren Nybegynder
30. december 2005 - 22:47 #7
Læg et svar. :o)
Avatar billede arne_v Ekspert
30. december 2005 - 22:57 #8
MySqlCommand cmd = new MySqlCommand("UPDATE ...", con);
cmd.ExecuteNonQuery();
Avatar billede arne_v Ekspert
30. december 2005 - 22:58 #9
og svar
Avatar billede arne_v Ekspert
30. december 2005 - 22:58 #10
hvis du er vant til ADO så minder en ASO.NET data reader lidt om et ADO record set
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