2013-06-23 82 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的确切版本/公钥 –