2011-11-23 69 views
6

我試圖使用ASP.NET Web窗體應用程序連接到MySQL數據庫。我正在進行測試,將數據庫從MySQL數據庫綁定到GridView連接到MySQL會導致錯誤「未找到數據源名稱並且未指定默認驅動程序」

這裏是我的代碼:

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 

然而,當MySQL數據庫連接時(MySQLConn.Open()),返回以下錯誤:

ERROR [IM002] [微軟] [ODBC驅動程序管理器]數據源名稱不是 找到並且沒有指定默認驅動程序

爲什麼是這樣的,我該如何預防它發生了嗎?

此外,看到此錯誤的可能原因是什麼?如果登錄憑據不正確,是否會顯示此錯誤?

+0

simillar問題檢查了這一點我的幫助你http://stackoverflow.com/questions/3294024/data-source-name-not-found-and-no-default-driver-specified – Karthik

+0

@karthi - 我已經將我的連接字符串改爲'DRIVER = {MySQL ODBC 5.1 Driver};',但是我仍然收到相同的錯誤 – Curt

+0

是否安裝了驅動程序?如果ODBC無法加載驅動程序,則ODBC會出現此錯誤。 – Romain

回答

8

,因爲我安裝的MySQL 64-bit ODBC 5.1驅動,因爲我的操作系統是運行64位的問題被引起的。

因爲我一直在試圖解決這個問題,所以我刪除了驅動程序,並安裝了MySQL ODBC 5.1驅動程序32-bit

這已修復了錯誤,我現在正在建立成功的連接。

+0

您是如何在ODBC管理器控制檯中看到32位驅動程序的?我的64位驅動程序出現問題並根據您的回覆,在Win 7 64位上安裝了32位,但我無法在ODBC管理器中看到該驅動程序 – SSG

3

您可能想檢查驅動程序是否已安裝。 Here is a guide to getting the list

檢查您是否有任何安裝,並確保您的版本與連接字符串中的版本匹配。

您應該能夠下載一個驅動Here

+0

歡呼聲,我已經安裝了「」MySQL ODBC 5.1驅動程序「,但我仍然收到這個錯誤 – Curt

+0

@Curt,你確定你可以訪問數據庫嗎?你是否嘗試使用另一個工具訪問?比如[這個](http://dev.mysql.com/downloads/gui-tools/5.0.html)或使用[UDL文件](http://msdn.microsoft.com/en-us/library/e38h511e(v = vs.71).aspx) – musefan

+0

登錄憑證是正確的這已經通過使用MySQL管理員連接進行了測試 – Curt

3

我的 「數據源名稱未找到」 的解決方案(與5.2.4 ODBC驅動程序的ANSI,Win7的64位):

1)安裝64位ODBC MySQL驅動程序 - 它應該是在ODBC驅動程序可見。

2)安裝32位的ODBC MySQL驅動程序 - 它是在ODBC驅動程序不可見的,但創建Program Files中86「影子」的安裝。

就是這樣。

+0

這對我來說是這樣的,我首先安裝了32位,並且它不工作(因爲我知道64位-bit不起作用),但是在安裝後,它解決了我的問題。 –

3

Curt是對的。我有這個確切的問題。由於我在工作站上安裝了MySQL Workbench,因此我認爲我安裝了驅動程序;不。 安裝驅動程序並使用正確版本調用它,並添加命令「Provider = MSDASQL;」到連接字符串,因爲我在64位系統上解決了我的問題。 如果你想看到所有安裝在Windows系統上的ODBC驅動程序,打開註冊表編輯器:

\ HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ ODBC驅動程序。

在那裏你會發現是否安裝了MySQL驅動程序,如果是的話,它的正確名稱。

This Link將帶你到MySQL驅動程序下載網站。

+0

歡迎來到Stack Overflow,@Russell S This並不是真正解決OP問題的答案(原始海報)。你應該寫這個評論。 –

+0

必須有50個評論的聲望。現在我是消極的。哦poo:0) –

+1

我已經改寫了答案。謝謝你的反饋。 –

0

我的問題是,我對我的代碼

DRIVER = {MySQL的ODBC 5.3驅動程序},但是當我做仰望的ODBC槽窗戶搜索引擎我發現叫ODBC數據源一個應用程序,在該應用程序的Drivers選項卡下,我發現驅動器的名稱是{MySQL ODBC 5.3 ANSI Driver}。這解決了問題。

相關問題