多页asp.net中的数据库连接

时间:2013-02-27 14:31:11

标签: c# asp.net database-connection connection-string

我的npgsql与数据库连接有问题。关键是我的应用程序验证用户对db.If成功然后重定向到下一页并显示SQL查询。重定向站点并尝试读取查询时,异常显示:连接未打开。 任何人都可以帮助我吗?

string connectionString =
"Server=serverName;" +
"Database=dbName;" +
"User ID=" + strUsername + ";" +
"Password=" + strPassword + ";" +
"Port=portNo;";

NpgsqlConnection dbcon;
dbcon = new NpgsqlConnection(connectionString);
dbcon.Open();

1 个答案:

答案 0 :(得分:1)

您似乎正在尝试重用从不同位置无法访问的代码。这将是我的方法。

创建一个通用数据访问器。创建一个类(如果文件夹存在,则可能必须将其存储在App_Data中),名为DataAccessor。这是一个您可以在每个页面中初始化和调用的课程。

public class DataAcessor
{
    private _connectionString;

    public DataAcessor(string connectionString)
    {
        _connectionString = connectionString;
    }

    public bool ValidateUser(string username, string password)
    {
        //code to call database for validation only, returns true or false
    }

    public string GetUserName(int userID) //or some other call to the database
    { }
}

现在在每个页面上,创建一个类的新对象并使用它。除非使用Session变量,否则不能依赖其他页面中的数据。

DataAccessor da = new DataAccessor("<some conn string>");
da.ValidateUser("joe", "asdf");

在第二页上:

DataAccessor da = new DataAccessor("<some conn string>");
da.GetUserId(123);