数据库连接在多个页面asp.net



我的npgsql连接到数据库有问题。关键是我的应用程序根据db验证用户。如果成功,则重定向到下一页并显示SQL查询。当站点被重定向并尝试读取查询时,异常显示:连接未打开。有人能帮我吗?

string connectionString =
"Server=serverName;" +
"Database=dbName;" +
"User ID=" + strUsername + ";" +
"Password=" + strPassword + ";" +
"Port=portNo;";
NpgsqlConnection dbcon;
dbcon = new NpgsqlConnection(connectionString);
dbcon.Open();

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

创建一个公共数据访问器。创建一个名为DataAccessor的类(如果文件夹存在,您可能必须将其存储在App_Data中)。这是一个可以初始化并从每个想要使用它的页面调用的类。

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);

最新更新