2013-06-23 81 views
0

到PostgreSQL我有一個掛鉤C#aspx頁面了對Npgsql的PostgreSQL的惱人的任務。C#ASPX用連接Npgsql的

,我有是,當我嘗試導入Npgsql的,我得到以下ASPX錯誤信息返回的問題:

CS0246:類型或命名空間名稱「Npgsql的」找不到(你缺少using指令或程序集引用)

我有一個調用下面的aspx頁面從數據庫獲取數據的javascript函數:

<%@ language="C#"%> 
<%@ Import Namespace="Npgsql" %> 
<% 

    // PostgeSQL-style connection string 
    string connstring = String.Format("Server=localhost;Port=5432;UID=posgres;Password=pass;Database=postgres_db;"; 
    NpgsqlConnection conn = new NpgsqlConnection(connstring);  
    conn.Open(); 
%> 

我假設我需要在我的web.config中設置它,但我不能爲我的生活出來。

任何幫助將不勝感激! 謝謝。

回答

1

您的問題是沒有被引用Npgsql.dll。您只導入名稱空間。

這不是砍SQL到ASP.NET文件最佳實踐......解決辦法是添加DLL的web.config文件:

... 
    <system.web>   
    <compilation debug="true" targetFramework="4.5">        
     <assemblies> 
     <add assembly="Npgsql, Version=2.0.11.93, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" /> 
    ... 

但我建議創建一個類庫項目或者至少使用Visual Studio的Web應用程序項目(Express版本是免費的)。然後右鍵點擊名爲references的目錄並在那裏添加DLL。爲什麼? N層(http://en.wikipedia.org/wiki/Multitier_architecture):根據意圖更好地組織代碼。更容易找到錯誤和變化/維護代碼...

+0

我以爲我會需要添加一些在web.conf,生病給你的代碼一試,不過,如果我只是有幾個ASPX文件(而不是一部分一個Web應用程序項目),並且即時調用web.conf文件中的程序集,我將如何從我的aspx文件訪問該程序?只是'導入',並以我在我的代碼中的方式使用它,或者我需要這麼想嗎? – user1747683

+0

哦,該死了,剛剛有機會現在進行測試,並且當頁面加載時出現錯誤 '無法加載文件或程序集'Npgsql,Version = 2.0.11.93,Culture = neutral,PublicKeyToken = 5d8b90d52f46fda7'或它的一個依賴。該系統找不到指定的文件。' – user1747683

+0

當然,您需要設置YOUR Npgsql.dll的確切版本/公鑰 –