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
    { }
}

ページで、クラスの新しいオブジェクトを作成して使用します。セッション変数を使用しない限り、他のページからのデータに依存することはできません。

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

そしてあなたの2番目のページで:

DataAccessor da = new DataAccessor("<some conn string>");
da.GetUserId(123);
于 2013-02-27T17:20:00.233 に答える