om du kör med odbc får du byta ut mot "New OdbcConnection()" samt att importa Microsoft.Data.Odbc
Annars måste man väl lägga till nån DNS eller nått kanske...
10 svar · 624 visningar · startad av cyprys
Jag ska koppla min ASP.NET-applikation till en mySQL-databas, men lyckas inte.
Jag har hittat en massa exempel genom att använda ODCB, men använder hellre en OLEDB-koppling.
Vad behöver man för att kunna koppla till en databas på den lokala datorn.
Har tankat hem mySQL samt MyODCB (Bara ändå) men får felmeddelande på denna kod.
Har en stark känsla på att jag saknar något.
Public conn As New OleDbConnection("Provider=MySQLProv;Data Source=databasnamn;User Id=a;Password=a;")
-- Felmess --
No error information available: REGDB_E_CLASSNOTREG(0x80040154).
[InvalidOperationException: The 'MySQL' provider is not registered on the local machine.]
om du kör med odbc får du byta ut mot "New OdbcConnection()" samt att importa Microsoft.Data.Odbc
Annars måste man väl lägga till nån DNS eller nått kanske...
[InvalidOperationException: The 'MySQL' provider is not registered on the local machine.]
Providern är inte installerad/registrerad på datorn!
Installera/registrera den så kommer det säkert fungera!
Jo det är det som är problemet.
Om man kollar på https://www.mysql.com så hittar jag ingen koppling för OLe Db, .NET och MySQL.
ODCB går dock bra, och jag har tankat dessa filer.
Men jag undrar helt enkelt om någon har de filerna som behövs för att kunna koppla ASP.NET till mySQL genom Ole Db istället för genom ODCB?
Eller kanske en länk?
Får man fråga varför inte via Odbc då nu detta fungerar?
Vid ett eventuellt byte till t.ex. MS SQL så vill jag fortfarande använda Ole Db, utan att behöva byta.
Men egentligen handlar inte frågan om att jag inte kan koppla till databasen, utan om vad som saknas för att koppla till denne med Ole Db.
Gör en liten db-wrapper. Kan ladda upp den jag gjort.
Hmm jag får error på denna raden
objCmd.Fill(ds, "test")
Server Error in '/' Application.
--------------------------------------------------------------------------------
D:\Program\Delade filer\System\Ole DB\oledb32.dll
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileNotFoundException: D:\Program\Delade filer\System\Ole DB\oledb32.dll
Source Error:
Line 15: ' Fyll ett DataSet.
Line 16: dim ds as DataSet = new DataSet()
Line 17: objCmd.Fill(ds, "test")
Line 18:
Line 19: ' Välj en DataView och bind till serverkontrollen.
Source File: d:\inetpub\wwwroot\dot net\15.aspx Line: 17
Stack Trace:
[FileNotFoundException: D:\Program\Delade filer\System\Ole DB\oledb32.dll]
System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName) +1480
System.Data.Common.ADP.GetVersionInfo(String filename) +105
System.Data.Odbc.OdbcGlobalEnv.GetGlobalEnv() +544
System.Data.Odbc.OdbcConnection.Open() +185
System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
ASP._15_aspx.Page_Load(Object obj, EventArgs e) in d:\inetpub\wwwroot\dot net\15.aspx:17
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
Hur importerar du dll:en?
Vid ett eventuellt byte till t.ex. MS SQL så vill jag fortfarande använda Ole Db, utan att behöva byta.
1. Om du bygger en speciell DAL så behöver du inte göra mer än byta ut connectionsträngen.
2. Att behålla OleDb när man använder SQL Server är rätt korkat när det finns speciella objekt till MS SQL server som ger dig maximal prestanda. Så skall du byta till MS SQL Server så skall du även byta ut dina OleDb-objekt mot Sql-objekt. Men detta löser din DAL om du skrivit den rätt.
- M
För att koppla MySql behövs även Odbc.Net.
http://www.webforum.nu/showthread.php?s=&forumid=191&threadid=47344