2017-06-07 6 views
0

これは簡単ではないので、誰もそれを尋ねていない、または多くの人がこれをやろうとしていないため、Google検索で良い結果を見つけることができません。基本的に、私のメインフォームはiシリーズ(AS400)メインフレームへIDB2接続を作成しますフォーム間で同じIDB2接続を使用する

Connection con = new Connection(); 
con.Open(connectionString, userName, userPassword, 0); 

メインフォームは、この接続の罰金を使用することができます。 PCの内部SQLデータベースにレコードを表示する別のフォームもありますが、このフォームでもAS400にアクセスする必要があります。 IDB2接続のエントリパラメータを追加しました。フォームが最初に初期化されるとき、接続状態は開いています。しかし、フォーム上のボタンをクリックしてその新しいサブルーチンを入力すると、接続はnullになります。接続を常時開いたままにするには、公開するか何かにする必要がありますか?私はすべてのコードをこの形式で新しい接続を再開するように置くことができましたが、それは一種のように思われます。フォーム間のオープンな接続を共有する方法のアイデア?

新しいフォーム:あなたはあなたのプライベート変数にパラメータを割り当てる必要が

private iDB2Connection conn; 

public frmFileDatabase(iDB2Connection conn) 
    { 
     InitializeComponent(); 
    } 

private void btnUpload_Click(object sender, EventArgs e) 
    { 
     // conn is null at this point 
    } 

答えて

1
private iDB2Connection conn; 

public frmFileDatabase(iDB2Connection _conn) 
    { 
     InitializeComponent(); 
     conn = _conn; 
    } 

private void btnUpload_Click(object sender, EventArgs e) 
    { 
     // you can use the connection 
    } 

、 これは、私はそれが簡単で、愚かなものだった考え出します

+0

に役立つかもしれません。私の狂った世界に光を当ててくれてありがとう。 :) – user1420914

関連する問題