0

次のようなメソッドに問題があります。

    public SqlDataReader statistiekenDocentBekijken(int docentid)
    {
        //Conectie met de database
        SqlConnection connectie = new SqlConnection("user id=bbbbb;" +
           "password=bbbbb;server=bbbbb;" +
           "Trusted_Connection=false;" +
           "database=bbbbb; ");

        SqlCommand statsDocenten = new SqlCommand("SELECT * FROM ENQUETE_ANTWOORD LEFT JOIN KDV ON ENQUETE_ANTWOORD.kdv_ID = KDV.kdv_ID LEFT JOIN DOCENT ON KDV.docent_ID = DOCENT.docent_ID LEFT JOIN VAK ON KDV.vak_ID = VAK.vak_ID WHERE DOCENT.docent_ID = "+ docentid +" ",connectie);
        SqlDataReader statsDocentenR;
        connectie.Open();
        statsDocentenR = statsDocenten.ExecuteReader();
        connectie.Close();
        return statsDocentenR;
    }

このメソッドは、すべてのメソッドを配置するクラス Methods にあります。

私が望むのは、データリーダーのコンテンツを返し、メインフォームと呼ばれるフォームにあるデータグリッドビューに表示することです。何かを返す前に接続を閉じるため、現在、私のメソッドは null を返します。私が持っているメインフォームの接続を閉じることができず、これがこれを行う適切な方法なのか、それとも別の方法で返す必要があるのか​​ さえわからないため、今何をすべきか本当にわかりません。皆さんのいずれかがこれで私を助けてくれることを願っています。ありがとう。

4

1 に答える 1

0

問題を正しく読んだ場合。

追加CommandBehavior.CloseConnection

実行を読み取りに変更します

statsDocentenR = statsDocenten.ExecuteReader(CommandBehavior.CloseConnection);

削除するconnectie.Close();

リーダーを閉じると、接続が閉じます。

于 2013-10-16T09:44:57.963 に答える