我的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();
答案 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);