如何防止SQLdatareader返回NULL?

时间:2013-10-16 09:33:11

标签: c# sql methods return sqldatareader

我遇到如下方法的问题:

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

此方法位于方法类中,我将所有方法放在。

我想要的是返回datareader中的内容并将其显示在datagridview中,该数据视图位于名为Mainform的表单上。我的方法当前返回null,因为我在返回任何内容之前关闭了连接。我现在不知道该怎么做,因为我无法关闭Mainform中的连接,我甚至不知道这是否是正确的方法,或者我可能应该以另一种方式返回它。我希望你们中的任何人都可以帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

如果我已正确阅读问题。

添加CommandBehavior.CloseConnection

将执行更改为读取

statsDocentenR = statsDocenten.ExecuteReader(CommandBehavior.CloseConnection);

删除connectie.Close();

当阅读器关闭时,连接将关闭。