2011-11-23 10 views
6

Sto provando a connettermi a un database MySQL usando la mia applicazione Web Form ASP.NET. Sto eseguendo un test per legare i dati dal database MySQL a GridView.Il collegamento a MySQL causa l'errore "Nome origine dati non trovato e nessun driver predefinito specificato"

Ecco il mio codice:

Dim strMySQLConn As String = "DRIVER={MySQL ODBC 5.1 Driver};Database=database_name;Server=ip_address;UID=username;PWD=password;" 
    Dim MySQLConn As New OdbcConnection(strMySQLConn) 

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
     If Not Page.IsPostBack Then 

      Dim ds As DataSet = New DataSet() 
      Dim cmdMySQL As New OdbcDataAdapter("SELECT * FROM categorymaster", MySQLConn) 

      MySQLConn.Open() 

      cmdMySQL.Fill(ds, "prjs") 

      gv.DataSource = ds.Tables("prjs").DefaultView 
      gv.DataBind() 


      MySQLConn.Close() 

     End If 
    End Sub 

Tuttavia, quando la connessione al database MySQL è fatto (MySQLConn.Open()), viene restituito il seguente errore:

ERRORE [IM002] [Microsoft] [ODBC Driver Manager] Nome origine dati non trovato e nessun driver predefinito specificato

Perché è questo e come posso prevenire Che succeda?

Inoltre, quali sono le possibili ragioni per visualizzare questo errore? Se le credenziali di accesso fossero errate, questo errore verrebbe mostrato?

+0

domanda simillar controlla questo il mio aiuto http://stackoverflow.com/questions/3294024/data-source-name-not-found-and-no-default-driver-specified – Karthik

+0

@karthi - I have ho cambiato la mia stringa conn a 'DRIVER = {MySQL ODBC 5.1 Driver};', ma sto ancora ricevendo lo stesso errore – Curt

+0

Il driver è installato? ODBC fornisce questo errore se non può caricare anche il driver. – Romain

risposta

8

Il problema è stato causato perché stavo installando un 5.1 driver ODBC 64-bit MySQL, perché il mio sistema operativo è in esecuzione a 64 bit.

Poiché ho cercato di risolvere questo problema per giorni, a distanza ho eliminato il driver e installato il driver ODBC 5.1 MySQL 32-bit.

Questo ha corretto l'errore e ora sto effettuando una connessione riuscita.

+0

Come hai visto il driver a 32 bit nella console di gestione ODBC? Ho problemi con il driver a 64 bit e in base alla tua risposta , installato 32 bit su Win 7 64 bit, ma non sono in grado di vedere il driver in ODBC Manager – SSG

3

È possibile controllare se il driver è installato. Here is a guide to getting the list

Verificare se è stato installato e assicurarsi che la versione corrisponda a quella della stringa di connessione.

Dovreste essere in grado di scaricare un driver Here

+0

Cheers, ho installato "" MySQL ODBC 5.1 Driver "ora, ma sto ancora ricevendo questo errore – Curt

+0

@Curt, sei sicuro di poter accedere al DB? Hai provato ad accedere usando un altro strumento? this] (http://dev.mysql.com/downloads/gui-tools/5.0.html) o utilizzando un [UDL File] (http://msdn.microsoft.com/en-us/library/e38h511e (v = vs.71) .aspx) – musefan

+0

Le credenziali di accesso sono corrette Questo è stato testato collegandosi usando l'amministratore di MySQL – Curt

3

La mia soluzione di "Nome origine dati non trovato" (con 5.2.4 driver ODBC ANSI, Win7 64 bit):

1) Installare 64bit ODBC driver MySQL - dovrebbe essere visibile nel driver ODBC.

2) Installa driver MySQL a 32 bit ODBC: è invisibile nei driver ODBC, ma crea un'installazione "shadow" in Program Files x86.

Questo è tutto.

+0

Questo lo ha fatto per me.Ho installato il primo a 32 bit e non ha funzionato (perché sapevo 64 -bit non funzionava), ma dopo aver installato entrambi, ha risolto il problema. –

3

Curt aveva ragione. Stavo avendo questo problema esatto. Da quando ho installato MySQL Workbench sulla mia workstation, ho pensato di avere i driver installati; No. Installare il driver più chiamandolo con la versione corretta e aggiungendo il comando "Provider = MSDASQL;" alla stringa di connessione dovuta al fatto che sono su un sistema a 64 bit risolto il problema per me. Se si desidera visualizzare tutti i driver ODBC installati sul vostro sistema di Windows, aprire l'editor del Registro di sistema:

HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ driver ODBC \.

Lì si scoprirà se il driver MySQL è installato e, in tal caso, il suo nome corretto.

This Link ti condurrà al sito di download dei driver MySQL.

+0

Benvenuti in Stack Overflow, @Russell S non è in realtà una risposta alla domanda dell'OP (Poster originale). Dovresti scrivere questo come commento. –

+0

Deve avere 50 reputazione per commentare. Ora sono negativo Oh poo: 0) –

+1

Ho riformulato la risposta. Grazie per l'input. –

0

Il mio problema era che avevo sul mio codice

DRIVER = {MySQL ODBC 5.3 driver}, ma quando l'ho fatto cercare l'ODBC Trough il motore di Windows ricercatore ho trovato un app chiamato ODBC Data Sources, in quell'app sotto la scheda Driver ho trovato il nome delle unità {Driver ANSI MySQL ODBC 5.3}. Questo ha risolto il problema.

Problemi correlati