2011-11-23 51 views
6

Tôi đang cố kết nối với cơ sở dữ liệu MySQL bằng ứng dụng ASP.NET Web Forms. Tôi đang thực hiện một thử nghiệm để Liên kết dữ liệu từ cơ sở dữ liệu MySQL với một số GridView.Kết nối với MySQL gây ra lỗi "Không tìm thấy tên nguồn dữ liệu và không có trình điều khiển mặc định được chỉ định"

Đây là mã của tôi:

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 

Tuy nhiên, khi kết nối cơ sở dữ liệu MySQL được thực hiện (MySQLConn.Open()), các lỗi sau sẽ được trả về:

ERROR [IM002] [Microsoft] [ODBC Trình quản lý trình điều khiển] Tên nguồn dữ liệu không phải là được tìm thấy và không có trình điều khiển mặc định nào được chỉ định

Tại sao điều này và cách tôi có thể đặt trước nó xảy ra?

Ngoài ra, lý do có thể xảy ra khi thấy lỗi này là gì? Nếu thông tin xác thực đăng nhập không chính xác, lỗi này có được hiển thị không?

+0

câu hỏi simillar kiểm tra điều này giúp tôi http://stackoverflow.com/questions/3294024/data-source-name-not-found-and-no-default-driver-specified – Karthik

+0

@karthi - Tôi đã thay đổi chuỗi conn của tôi thành 'DRIVER = {MySQL ODBC 5.1 Driver};', nhưng tôi vẫn gặp lỗi tương tự – Curt

+0

Trình điều khiển có được cài đặt không? ODBC cung cấp lỗi này nếu nó không thể tải trình điều khiển. – Romain

Trả lời

8

Vấn đề này được gây ra bởi vì tôi đã cài đặt một 64-bit MySQL ODBC 5.1 Driver, vì hệ điều hành của tôi đang chạy 64 bit.

Vì tôi đã cố gắng giải quyết vấn đề này trong nhiều ngày, như một cảnh quay dài, tôi đã xóa trình điều khiển và cài đặt 32-bit Trình điều khiển MySQL ODBC 5.1.

Điều này đã khắc phục lỗi và hiện tôi đang tạo kết nối thành công.

+0

Làm cách nào bạn nhìn thấy Trình điều khiển 32 bit trong Bảng điều khiển quản lý ODBC? Tôi gặp vấn đề với trình điều khiển 64 bit và dựa trên câu trả lời của bạn , cài đặt 32bit trên Win 7 64 bit.Nhưng tôi không thể nhìn thấy trình điều khiển trong ODBC Manager – SSG

3

Bạn có thể muốn kiểm tra xem trình điều khiển đã được cài đặt chưa. Here is a guide to getting the list

Kiểm tra xem bạn đã cài đặt chưa và cũng đảm bảo phiên bản của bạn khớp với phiên bản trong chuỗi kết nối của bạn.

Bạn sẽ có thể tải về một trình điều khiển Here

+0

Chúc mừng, tôi đã cài đặt trình điều khiển MySQL ODBC 5.1 "" bây giờ, nhưng tôi vẫn nhận được lỗi này – Curt

+0

@Curt, bạn có chắc chắn rằng bạn có thể truy cập DB không? Bạn đã thử truy cập bằng công cụ khác chưa? this] (http://dev.mysql.com/downloads/gui-tools/5.0.html) hoặc sử dụng [UDL File] (http://msdn.microsoft.com/en-us/library/e38h511e (v = vs.71) .aspx) – musefan

+0

Thông tin đăng nhập là chính xác.Điều này đã được thử nghiệm bằng cách kết nối bằng cách sử dụng MySQL Administrator – Curt

3

giải pháp của tôi về "tên nguồn dữ liệu không tìm thấy" (với 5.2.4 trình điều khiển ODBC ansi, Win7 64bit):

1) Cài đặt 64bit ODBC trình điều khiển MySQL - nó nên được hiển thị trong trình điều khiển ODBC.

2) Cài đặt trình điều khiển ODBC MySQL 32 bit - nó không hiển thị trong trình điều khiển ODBC, nhưng tạo cài đặt "bóng" trong Program Files x86.

Đó là tất cả.

+0

Điều này đã làm nó cho tôi.Tôi đã cài đặt 32-bit đầu tiên và nó không hoạt động (vì tôi biết 64 -bit sẽ không hoạt động) Nhưng sau khi cài đặt cả hai, nó đã giải quyết được vấn đề của tôi –

3

Curt đã đúng. Tôi đã gặp vấn đề chính xác này. Vì tôi đã cài đặt MySQL Workbench trên máy trạm của mình, tôi cho rằng tôi đã cài đặt các trình điều khiển; Không. Cài đặt trình điều khiển và gọi nó bằng phiên bản chính xác và thêm lệnh "Provider = MSDASQL;" đến chuỗi kết nối do thực tế là tôi đang sử dụng hệ thống 64 bit đã giải quyết được vấn đề cho tôi. Nếu bạn muốn xem tất cả các trình điều khiển ODBC được cài đặt trên hệ thống Windows của bạn, mở trình soạn thảo registry để:

\ HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ ODBC Drivers.

Ở đó bạn sẽ tìm hiểu xem trình điều khiển MySQL đã được cài đặt chưa, và nếu có, tên chính xác của nó.

This Link sẽ đưa bạn đến trang web Tải xuống trình điều khiển MySQL.

+0

Chào mừng bạn đến với Stack Overflow, @Russell S không thực sự là câu trả lời cho câu hỏi của OP (Bản gốc). Bạn nên viết điều này làm bình luận. –

+0

Phải có 50 danh tiếng để bình luận. Bây giờ tôi tiêu cực. Oh poo: 0) –

+1

Tôi đã lặp lại câu trả lời. Cảm ơn bạn đã nhập. –

0

Vấn đề của tôi là tôi đã có trên mã của tôi

DRIVER = {MySQL ODBC 5.3 driver}, nhưng khi tôi đã tìm kiếm các ODBC trough động cơ cửa sổ tìm kiếm Tôi tìm thấy một ứng dụng gọi là ODBC Data Sources, trong ứng dụng đó dưới tab Trình điều khiển Tôi đã tìm thấy tên của các ổ đĩa là {MySQL ODBC 5.3 ANSI Driver}. Điều đó đã khắc phục được vấn đề.

Các vấn đề liên quan