0
我有,看起来像下面这样的方法存在问题:防止SQLdatareader返回NULL怎么办?
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中,并将其显示在一个名为Mainform的窗体上的datagridview中。我的方法当前返回null,因为我在返回任何东西之前关闭连接。我现在不知道该怎么做,因为我无法关闭Mainform中的连接,而我甚至不知道这是否是正确的方式,或者我可能应该以其他方式返回。我希望你们中的任何人都可以帮我解决这个问题。谢谢。
当数值已被返回且方法不再使用时,阅读器是否自行关闭? –
好了,谢谢! –
@NiekJonkman GC将处理阅读器,连接将关闭。然而,当我读完'statsDocentenR.Close()'后,我会调用close方法。如果你不知道连接将保持打开状态,你永远不会知道连接会持续多久。 – Fred