使用静态方法时的UserControl NullReferenceException

时间:2018-09-03 19:10:14

标签: c# nullreferenceexception

我有一个带有静态方法的类,该方法可检索数据库数据并返回数据表object

public static class DataBase
{
   public static DataTable Selecionar()
   {
        SqlDataReader Retorno = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(Retorno);
        return dt;
   }
}

在另一个类中,我在实例方法内调用此静态方法,该实例方法处理DataTable object并填充返回的列表。

public class Questionario
{
    public List<Objects.Questionario> Selecionar()
    {
       var dt = DataBase.Selecionar();
       List<Objects.Questionario> Questionarios = new List<Objects.Questionario>();

       foreach (System.Data.DataRow dr in dt.Rows)
       {
          //ADD ITENS TO LIST Questionarios
       }

       return Questionarios;
    }
}

我也有一个UserControl实例,该实例是上面引用的类。

public partial class ucLayout1 : UserControl
{
    private void carregaQuestionario()
    {
        Questionario dbQuestionario = new Questionario();
        dbQuestionario.Selecionar();
    }
}

将这个UserControl放在表单中(拖放)时,我会收到错误消息

  

“ System.NullReferenceException:对象引用未设置为对象的实例。”

如果我将Questionario类中的静态方法调用替换为new DataTable();,则不会出错。

0 个答案:

没有答案