2012-01-02 23 views
5

Tôi đang cố gắng đặt kết nối mysql trong tệp cấu hình web.Sự cố với chuỗi kết nối trong tệp cấu hình web

Đây là mã chuỗi kết nối:

<connectionStrings> 
    <add name="connstring" 
     connectionString="DRIVER={MySQL ODBC= 3.51=  Driver};Database=marctest;Server=localhost;UID=root;PWD=1234;" 
     providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

và tôi đang truy cập nó ở bước sau:.

MySqlConnection connmysql = new MySqlConnection(WebConfigurationManager.ConnectionStrings["connstring"].ConnectionString); 

Khi tôi chạy mã của tôi nó tạo ra một ngoại lệ tham chiếu null "đối tượng tài liệu tham khảo không đặt thành một thể hiện của một đối tượng. "

Tôi làm cách nào để giải quyết vấn đề này?

+0

Tại sao bạn không sử dụng MySql .Net Connector? http://dev.mysql.com/downloads/connector/net – Lloyd

Trả lời

7

Nếu bạn đang sử dụng MySql .Net Connector thì cài đặt cấu hình của bạn sẽ trông giống như sau

<add name="connstring" connectionString="server=localhost;User Id=root;Persist Security Info=True;database=marctest;password=PASSWORD" providerName="MySql.Data.MySqlClient"/> 

Sau đó, mã của bạn sẽ như thế nào.

using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["connstring"].ConnectionString)) 
{ 
    // Database work done here 
} 
+0

Tôi đang sử dụng loại mã tương tự nhưng vấn đề vẫn chưa được giải quyết! –

+0

"Tương tự" hoặc giống nhau, vì cài đặt "connectionString" là rất quan trọng, nếu không đúng thì kết nối sẽ không được khởi tạo. Kiểm tra chính tả của "connstring" là giống nhau trên tệp cấu hình và mã. – Lloyd

4

Tôi nghĩ bạn có MySql Connector/Net API. Thay đổi thuộc tính ProviderName và xem ConnectionStrings. Nó phải là MySql.Data.MySqlClient và sử dụng bộ sưu tập System.Configuration.ConfigurationManager.ConnectionStrings.

+0

Điều này đã được thực hiện nhưng vẫn gặp lỗi tương tự. Bất kỳ cách nào khác để giải quyết vấn đề này? –

+0

Web.config nào được bạn sử dụng? Là nó ở gốc hoặc phụ dir? – adatapost

0

Bạn nên kiểm tra như sau đầu tiên:

ConfigurationManager.ConnectionStrings["connstring"].ConnectionString 

trả về một chuỗi, bạn có thể viết nó vào đầu ra với Response.Write hoặc nhìn vào nó bằng cách sử dụng trình gỡ lỗi

nếu bạn có chuỗi từ bước trên , kiểm tra để xem lớp WebConfigurationManager mà bạn đang sử dụng được khởi tạo và không phải là rỗng.

nếu bạn không nhận được chuỗi từ bước 1, bạn có thể có một web.config trong thư mục mã của bạn đó sẽ là một thư mục ảo và có thể được trọng web.config của bạn

phần connectionStrings của bạn nên được bên configuration của Web.config tập tin và sẽ giống như sau

<configuration> 
    <connectionStrings> 
    <add name="connstring" connectionString="..." providerName="..." /> 
    </connectionStrings> 

    <appSettings> 
    ... 
    </appSettings> 
</configuration> 

thử đọc chuỗi kết nối từ một tinh khiết * .aspx trang và xem nếu bạn có thể truy cập vào nó đầu tiên.

tạo tệp ASPX và dán sau vào trong đó và gọi nó từ trình duyệt của bạn.

<%@ Page Language="C#" %> 
<% 
Response.Write(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString); 
%> 

nếu bạn vẫn không thể đọc được chuỗi kết nối, xin vui lòng chỉnh sửa câu hỏi của bạn và thêm web.config đầy đủ và cũng tập tin lớp mà bạn đang cố gắng để tạo ra kết nối của bạn đối với tôi để xem những gì có thể đi sai

+0

Nó không trả lại giá trị chuỗi chính nó (ném cùng một lỗi). Và tôi không tìm thấy bất kỳ tệp web.config nào khác trong thư mục Dự án của tôi. Bất kỳ cách nào khác có thể được giải quyết? –

+0

Tôi đã cập nhật câu trả lời của mình, vui lòng cho tôi biết nếu bạn vẫn không thể thấy chuỗi kết nối trong trang của mình – AaA

+0

Tôi nghi ngờ bạn đang tạo kết nối từ một lớp khác với 'System.Web.UI.Page' để đối tượng 'ConfigurationManager' không được tự động khởi tạo – AaA

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