2011-11-23 131 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}。这解决了问题。

相关问题