执行方法时出现c#NullReferenceException

时间:2017-04-30 14:43:51

标签: c# visual-studio-2015

我在这里执行此方法时遇到错误:

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

这就是我执行此方法时得到的结果:enter image description here

提前致谢。

1 个答案:

答案 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))