0

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

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

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

1 回答 1

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);
于 2013-02-27T17:20:00.233 回答