我在这里执行此方法时遇到错误:
public void chercher_Employe(System.Data.DataSet Dset, String critere, out String erreur, out Boolean
exist, out employe tab_emp)
{
exist = false;
erreur = null;
////////// here where the error happens
if (Dset.Tables["employe"].Rows.Count > 0)
{
ligne = Dset.Tables[table].Select(critere);
if (ligne.Count() > 0)
{
exist = true;
tab_emp = new employe();
tab_emp.num_e = Convert.ToInt32(ligne[0]["num_e"]);
tab_emp.nom_e = ligne[0]["nom_e"].ToString();
tab_emp.num_r = Convert.ToInt32(ligne[0]["num_r"]);
tab_emp.sal_e = Convert.ToInt32(ligne[0]["sal_e"]);
tab_emp.adr_e = ligne[0]["adr_e"].ToString();
tab_emp.nom_ser = ligne[0]["nom_ser"].ToString();
}
else
{ exist = false; }
}
else erreur = "Table employé est vide";
}
这就是我执行此方法时得到的结果:
提前致谢。
答案 0 :(得分:0)
以下两行代码专注于“
/* #1 */ ligne = Dset.Tables[table].Select(critere);
/* #2 */ if (ligne.Count() > 0)
第1行根据您的查询调用表结果。如果没有与查询条件匹配,则不返回任何行;因此ligne
的值为null
。表== null没有Count()
属性并抛出异常。最简单的解决方法是更新第2行以捕获空值:
if ((ligne != null) && (ligne.Count() > 0))