MySQL Connector. Czy konieczny?

0

Witam

Potrzebujemy wykorzystać bazę SQL z dostępem z zewnątrz. Znajomy posiada własny hosting i założył dla nas takową. Mam jednak problemy z połączeniem się z nią (komunikat jak na screenach poniżej). Pomyślałem, że może coś źle skonfigurowana lub jakaś inna przyczyna, więc założyłem konto na freemysql.net. Jednak rezultat jest taki sam. Admin owej strony odpowiedział mi na forum, że bez MySQL Connectora nie ma szans (http://dev.mysql.com/downloads/connector/). Ale czy naprawdę muszę instalować ten konektor, żeby móc się połączyć z zewnętrzną bazą danych? Czy ADO.NET jest aż tak upośledzone pod tym względem? :/ Mi się wydaje, że to nie tak dlatego do Was pytanie czy musze, a może mam coś źle w mojej konfiguracji:

http://img256.imageshack.us/img256/1467/connections.jpg

http://img195.imageshack.us/img195/6264/otheroptions.jpg (sorry, ze linki, ale nie udało mi sie zrobić thumbnailsów :/)

Edit: Dodam, że program Navicat łączy się z obiema bazami bez problemu, więc to ewidentnie wina C#/VS

0

Nie musisz nic instalowac, wystarczy jak dodasz referencję do Mysql.Data.dll i umieścisz ten plik razem ze swoim programem.

0

No tak, ale czy samo System.Data.SQLclient nie wystarczy do zdalnego połączenia z bazą na serwerze?

0

Natywny format baz danych dla Microsoft to MSSQL i Access. poza tym, zawsze było tak, że to autor bazy dostarcza connectora.

0

Hej,
Prosiłbym rozjaśnić mi jeszcze trochę sytuację. MySqlConnector jest na licencji GNU GPL i nie mogę go użyć komercyjnie, choć działa bez zarzutu.

  1. System.Data.SQLclient działa tylko dla połączeń z MS SQL Server 200x? Nie połączę się zdalnie z żadną bazą MySQL, lecz tylko z bazą MS SQL?
  2. Czy istnieje jakaś inna możliwość na połączenie się za pomocą C# bez tego connectora (MySql.Data.MySqlClient) z bazą MySQL? Np. za pomocą jakiejś innej klasy z ADO.NET? Czy OLEDB podołałby temu zadaniu? (Nie miałem czasu jeszcze sprawdzić, dopiero późnym wieczorem będę mógł)

Proszę odpowiedzieć czy dobrze zrozumiałem. Dziękuję :)

0

Podobno przez OleDb się da, ale ja nigdy nie miałem czasu tego sprawdzić. Teoretycznie tym da się połączyć ze wszystkim, ale jak np. chciałem z bazą PostgreSQL, to łatwiej mi było użyć dedykowanej, zewnętrznej biblioteki.

0

Odbc wymaga dodatkowego sterownika, a OleDb dodatkowego provider'a. Myślałem, że OleDb ma większe możliwości, ale wszystko na jedno wychodzi i tak trzeba użyć zew. biblioteki i tak. Niefajnie, naprawdę :/
Może da się coś jeszcze poradzić?

Edit: Kurcze.. Chyba powinienem zrobić to na samym początku, ale wpadlem na to dopiero teraz. Na 4programmers jest artykuł (Bazy danych w środowisku .NET), w którym czytam:

Do popularnej bazy MySQL można podłączyć się za pomocą 3 sposobów:
• ODBC.NET – sterownik MyODBC
• Providery własne MySQL .NET
• OLEDB.NET – provider MyOLDDB
Mimo, iż sposób pierwszy i trzeci nie wymagają żadnych dodatkowych elementów [...]

U mnie ani MyOLEDB (w artykule chyba jest literówka?), ani MyODBC wydaje sie nie być?

Po zastosowaniu sterownika MyODBC dostaje:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified

OdbcConnection myConnection = new OdbcConnection("DRIVER=MyODBC; UID=login; PWD=hasło; Database=bazadanych; Server=moj.serwer.pl");

A po zastosowaniu MyOLEDB:

The 'MyOLEDB' provider is not registered on the local machine.

OleDbConnection myConnection = new OleDbConnection("Provider=MyOLEDB; Data Source=moj.serwer.pl; InitialCatalog=baza; User ID=uzytkownik; Password=haslo");

Czy to możliwe, że u mnie nazwy sterowników są inne, lub czy mogę je jakoś doinstalować?

1 użytkowników online, w tym zalogowanych: 0, gości: 1